78 lines
3.2 KiB
Python
78 lines
3.2 KiB
Python
#!/bin/env python
|
|
#Copyright ReportLab Europe Ltd. 2000-2004
|
|
#see license.txt for license details
|
|
#history http://www.reportlab.co.uk/cgi-bin/viewcvs.cgi/public/reportlab/trunk/reportlab/test/test_pdfbase_postscript.py
|
|
__version__=''' $Id'''
|
|
__doc__="""Tests Postscript XObjects.
|
|
|
|
Nothing visiblke in Acrobat, but the resulting files
|
|
contain graphics and tray commands if exported to
|
|
a Postscript device in Acrobat 4.0"""
|
|
|
|
from reportlab.test import unittest
|
|
from reportlab.test.utils import makeSuiteForClasses, outputfile, printLocation
|
|
from reportlab.pdfgen.canvas import Canvas
|
|
|
|
|
|
class PostScriptTestCase(unittest.TestCase):
|
|
"Simplest test that makes PDF"
|
|
|
|
def testVisible(self):
|
|
"Makes a document with extra text - should export and distill"
|
|
c = Canvas(outputfile('test_pdfbase_postscript_visible.pdf'))
|
|
c.setPageCompression(0)
|
|
|
|
c.setFont('Helvetica-Bold', 18)
|
|
c.drawString(100,700, 'Hello World. This is page 1 of a 2 page document.')
|
|
c.showPage()
|
|
|
|
c.setFont('Helvetica-Bold', 16)
|
|
c.drawString(100,700, 'Page 2. This has some postscript drawing code.')
|
|
c.drawString(100,680, 'If you print it using a PS device and Acrobat 4/5,')
|
|
c.drawString(100,660, 'or export to Postscript, you should see the word')
|
|
c.drawString(100,640, '"Hello PostScript" below. In ordinary Acrobat Reader')
|
|
c.drawString(100,620, 'we expect to see nothing.')
|
|
c.addPostScriptCommand('/Helvetica findfont 48 scalefont setfont 100 400 moveto (Hello PostScript) show')
|
|
|
|
|
|
c.drawString(100,500, 'This document also inserts two postscript')
|
|
c.drawString(100,480, ' comments at beginning and endof the stream;')
|
|
c.drawString(100,460, 'search files for "%PS_BEFORE" and "%PS_AFTER".')
|
|
c.addPostScriptCommand('%PS_BEFORE', position=0)
|
|
c.addPostScriptCommand('%PS_AFTER', position=2)
|
|
|
|
c.save()
|
|
|
|
def testTray(self):
|
|
"Makes a document with tray command - only works on printers supporting it"
|
|
c = Canvas(outputfile('test_pdfbase_postscript_tray.pdf'))
|
|
c.setPageCompression(0)
|
|
|
|
c.setFont('Helvetica-Bold', 18)
|
|
c.drawString(100,700, 'Hello World. This is page 1 of a 2 page document.')
|
|
c.drawString(100,680, 'This also has a tray command ("5 setpapertray").')
|
|
c.addPostScriptCommand('5 setpapertray')
|
|
c.showPage()
|
|
|
|
c.setFont('Helvetica-Bold', 16)
|
|
c.drawString(100,700, 'Page 2. This should come from a different tray.')
|
|
c.drawString(100,680, 'Also, if you print it using a PS device and Acrobat 4/5,')
|
|
c.drawString(100,660, 'or export to Postscript, you should see the word')
|
|
c.drawString(100,640, '"Hello PostScript" below. In ordinary Acrobat Reader')
|
|
c.drawString(100,620, 'we expect to see nothing.')
|
|
c.addPostScriptCommand('/Helvetica findfont 48 scalefont setfont 100 400 moveto (Hello PostScript) show')
|
|
|
|
|
|
c.save()
|
|
|
|
def makeSuite():
|
|
return makeSuiteForClasses(PostScriptTestCase)
|
|
|
|
|
|
#noruntests
|
|
if __name__ == "__main__":
|
|
unittest.TextTestRunner().run(makeSuite())
|
|
print 'saved '+outputfile('test_pdfgen_postscript_visible.pdf')
|
|
print 'saved '+outputfile('test_pdfgen_postscript_tray.pdf')
|
|
printLocation()
|