initial source import
diff --git a/doc/tools/getpagecounts b/doc/tools/getpagecounts
new file mode 100755
index 0000000..179ced1
--- /dev/null
+++ b/doc/tools/getpagecounts
@@ -0,0 +1,88 @@
+#! /usr/bin/env python
+#  -*- Python -*-
+
+"""Generate a page count report of the PostScript version of the manuals."""
+
+__version__ = '$Revision: 1.1.1.1 $'
+
+
+class PageCounter:
+    def __init__(self):
+        self.doclist = []
+        self.total = 0
+        self.title_width = 0
+
+    def add_document(self, prefix, title):
+        count = count_pages(prefix + ".ps")
+        self.doclist.append((title, prefix, count))
+        self.title_width = max(self.title_width, len(title))
+        self.total = self.total + count
+
+    def dump(self):
+        fmt = "%%-%ds  (%%s.ps, %%d pages)" % self.title_width
+        for item in self.doclist:
+            print fmt % item
+        print
+        print "  Total page count:  %d" % self.total
+
+    def run(self):
+        for prefix, title in [
+            ("api", "Python/C API"),
+            ("ext", "Extending and Embedding the Python Interpreter"),
+            ("lib", "Python Library Reference"),
+            ("mac", "Macintosh Module Reference"),
+            ("ref", "Python Reference Manual"),
+            ("tut", "Python Tutorial"),
+            ("doc", "Documenting Python"),
+            ("inst", "Installing Python Modules"),
+            ("dist", "Distributing Python Modules"),
+            ]:
+            self.add_document(prefix, title)
+        print self.PREFIX
+        self.dump()
+        print self.SUFFIX
+
+    PREFIX = """\
+This is the PostScript version of the standard Python documentation.
+If you plan to print this, be aware that some of the documents are
+long.  It is formatted for printing on two-sided paper; if you do plan
+to print this, *please* print two-sided if you have a printer capable
+of it!  To locate published copies of the larger manuals, or other
+Python reference material, consult the PSA Online Bookstore at:
+
+             http://www.python.org/psa/bookstore/
+
+The following manuals are included:
+"""
+    SUFFIX = """\
+
+
+If you have any questions, comments, or suggestions regarding these
+documents, please send them via email to python-docs@python.org.
+
+If you would like to support the development and maintenance of
+documentation for Python, please consider joining the Python Software
+Activity (PSA; see http://www.python.org/psa/), or urging your
+organization to join the PSA or the Python Consortium (see
+http://www.python.org/consortium/).
+"""
+
+def count_pages(filename):
+    fp = open(filename)
+    count = 0
+    while 1:
+        lines = fp.readlines(1024*40)
+        if not lines:
+            break
+        for line in lines:
+            if line[:7] == "%%Page:":
+                count = count + 1
+    fp.close()
+    return count
+
+
+def main():
+    PageCounter().run()
+
+if __name__ == "__main__":
+    main()