Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/Imaging/Scripts/pilprint.py
diff options
context:
space:
mode:
Diffstat (limited to 'Imaging/Scripts/pilprint.py')
-rw-r--r--Imaging/Scripts/pilprint.py93
1 files changed, 93 insertions, 0 deletions
diff --git a/Imaging/Scripts/pilprint.py b/Imaging/Scripts/pilprint.py
new file mode 100644
index 0000000..222cbff
--- /dev/null
+++ b/Imaging/Scripts/pilprint.py
@@ -0,0 +1,93 @@
+#! /usr/local/bin/python
+#
+# The Python Imaging Library.
+# $Id: pilprint.py 2134 2004-10-06 08:55:20Z fredrik $
+#
+# print image files to postscript printer
+#
+# History:
+# 0.1 1996-04-20 fl Created
+# 0.2 1996-10-04 fl Use draft mode when converting.
+# 0.3 2003-05-06 fl Fixed a typo or two.
+#
+
+VERSION = "pilprint 0.3/2003-05-05"
+
+import Image
+import PSDraw
+
+letter = ( 1.0*72, 1.0*72, 7.5*72, 10.0*72 )
+
+def description(file, image):
+ import os
+ title = os.path.splitext(os.path.split(file)[1])[0]
+ format = " (%dx%d "
+ if image.format:
+ format = " (" + image.format + " %dx%d "
+ return title + format % image.size + image.mode + ")"
+
+import getopt, os, sys
+
+if len(sys.argv) == 1:
+ print "PIL Print 0.2a1/96-10-04 -- print image files"
+ print "Usage: pilprint files..."
+ print "Options:"
+ print " -c colour printer (default is monochrome)"
+ print " -p print via lpr (default is stdout)"
+ print " -P <printer> same as -p but use given printer"
+ sys.exit(1)
+
+try:
+ opt, argv = getopt.getopt(sys.argv[1:], "cdpP:")
+except getopt.error, v:
+ print v
+ sys.exit(1)
+
+printer = None # print to stdout
+monochrome = 1 # reduce file size for most common case
+
+for o, a in opt:
+ if o == "-d":
+ # debug: show available drivers
+ Image.init()
+ print Image.ID
+ sys.exit(1)
+ elif o == "-c":
+ # colour printer
+ monochrome = 0
+ elif o == "-p":
+ # default printer channel
+ printer = "lpr"
+ elif o == "-P":
+ # printer channel
+ printer = "lpr -P%s" % a
+
+for file in argv:
+ try:
+
+ im = Image.open(file)
+
+ title = description(file, im)
+
+ if monochrome and im.mode not in ["1", "L"]:
+ im.draft("L", im.size)
+ im = im.convert("L")
+
+ if printer:
+ fp = os.popen(printer, "w")
+ else:
+ fp = sys.stdout
+
+ ps = PSDraw.PSDraw(fp)
+
+ ps.begin_document()
+ ps.setfont("Helvetica-Narrow-Bold", 18)
+ ps.text((letter[0], letter[3]+24), title)
+ ps.setfont("Helvetica-Narrow-Bold", 8)
+ ps.text((letter[0], letter[1]-30), VERSION)
+ ps.image(letter, im)
+ ps.end_document()
+
+ except:
+ print "cannot print image",
+ print "(%s:%s)" % (sys.exc_type, sys.exc_value)