prevent double call of _cleanup, which harms usefiles (and is a bad idea in general)
[PyX.git] / test / functional / test_pdfextra.py
blobba292bdbb75736f8b7820ec374ff1c7b7f72c76b
1 #!/usr/bin/env python
2 # -*- coding: ISO-8859-1 -*-
3 import sys; sys.path[:0] = ["../.."]
5 import pyx
6 from pyx import *
7 from pyx.font.font import PDFTimesBold
8 from pyx.pdfextra import *
11 def texttest():
12 c = canvas.canvas()
13 d = 0.0
15 llx, lly, w, h = 0, 0, 5, 1
16 c.text(llx, lly+h, "first textfield:", [text.vshift(-0.5)])
17 c.stroke(path.rect(llx-d, lly-d, w+2*d, h+2*d))
18 c.insert(textfield(llx, lly, w, h, name="textfield", defaultvalue="hallo", multiline=1,
19 font=PDFTimesBold))
21 llx, lly, w, h = 0, -2, 1, 1
22 c.text(llx, lly+h, "second textfield:", [text.vshift(-0.5)])
23 c.stroke(path.rect(llx-d, lly-d, w+2*d, h+2*d))
24 c.insert(textfield(llx, lly, w, h, name="another"))
26 return c
28 def checkboxtest():
29 c = canvas.canvas()
31 c.text(0, 0, "first checkbox:", [text.vshift(-0.5)])
32 c.insert(checkbox(0, -0.5, name="checkbox", defaulton=1))
34 return c
36 def radiotest():
37 c = canvas.canvas()
39 c.text(0, 0, "first radiobuttons:", [text.vshift(-0.5)])
40 pos = [(0, -0.5), (0, -1.0), (0, -1.5)]
41 values = ["One", "Two", "Three"]
42 for (x, y), value in zip(pos, values):
43 c.text(x+12*unit.x_pt, y, value)
44 c.insert(radiobuttons(pos, name="button", values=values, defaultvalue=values[0]))
46 # XXX : default entry is activated with the others
48 return c
50 def choicetest():
51 c = canvas.canvas()
52 d = 0.0
54 llx, lly, w, h = 0, 0, 5, 1
55 values = ["One", "Two", "Three"]
56 c.text(llx, lly+h, "first choicefield:", [text.vshift(-0.5)])
57 c.stroke(path.rect(llx-d, lly-d, w+2*d, h+2*d))
58 c.insert(choicefield(llx, lly, w, h, name="choicefield", values=values, defaultvalue=values[0],
59 font=PDFTimesBold))
61 return c
63 # write all test into one canvas
64 c = canvas.canvas()
65 for cc in [texttest(), checkboxtest(), radiotest(), choicetest()]:
66 if not c:
67 t = []
68 else:
69 t = [trafo.translate(0, c.bbox().bottom() - cc.bbox().top() - 1)]
70 c.insert(cc, t)
71 #c.stroke(cc.bbox().path(), t + [color.rgb.red, style.linestyle.dotted])
73 # test the transformation behaviour:
74 cc = canvas.canvas([trafo.scale(0.3)])#, trafo.rotate(90)])
75 cc.fill(c.bbox().path(), [color.gray(0.9)])
76 cc.insert(c)
77 d = document.document([document.page(cc, bboxenlarge=1)])
78 d.writePDFfile("test_pdfextra", compress=0)
80 # vim:syntax=python
81 # vim:fdm=marker:fmr=<<<,>>>: