1#!/usr/bin/python
2# $Id: quickreference.py 14574 2005-10-29 16:27:43Z bonefish $
3#
4# PDFlib/PDI client: mini imposition demo
5#
6
7from sys import *
8from pdflib_py import *
9
10maxrow = 2
11maxcol = 2
12startpage = 1
13endpage = 4
14width = 500.0
15height = 770.0
16
17infile = "reference.pdf"
18searchpath = "../data"
19
20p = PDF_new()
21
22if PDF_open_file(p, "quickreference.pdf") == -1:
23    print "Error: " + PDF_get_errmsg(p) + "\n"
24    exit(2)
25
26PDF_set_parameter(p, "SearchPath", searchpath)
27
28# This line is required to avoid problems on Japanese systems
29PDF_set_parameter(p, "hypertextencoding", "winansi")
30
31PDF_set_info(p, "Creator", "quickreference.py")
32PDF_set_info(p, "Author", "Thomas Merz")
33PDF_set_info(p, "Title", "mini imposition demo (Python)")
34
35manual = PDF_open_pdi(p, infile, "", 0)
36
37if manual == -1:
38    print "Error: " + PDF_get_errmsg(p) + "\n"
39    exit(2)
40
41row = 0
42col = 0
43
44PDF_set_parameter(p, "topdown", "true")
45
46for pageno in range(startpage, endpage+1):
47    if row == 0 and col == 0:
48	PDF_begin_page(p, width, height)
49	font = PDF_load_font(p, "Helvetica-Bold", "winansi", "")
50	PDF_setfont(p, font, 18)
51	PDF_set_text_pos(p, 24, 24)
52	PDF_show(p, "PDFlib 4.0 Quick Reference")
53
54    page = PDF_open_pdi_page(p, manual, pageno, "")
55
56    if page == -1:
57	print "Error: " + PDF_get_errmsg(p) + "\n"
58	exit(2)
59
60    optlist = "scale " + repr(1.0/maxrow)
61
62    PDF_fit_pdi_page(p, page,
63		width/maxcol*col, (row + 1) * height/maxrow, optlist)
64    PDF_close_pdi_page(p, page)
65
66    col = col+1
67    if col == maxcol:
68	col = 0
69	row = row+1
70
71    if row == maxrow:
72	row = 0
73	PDF_end_page(p)
74
75# finish the last partial page
76if row != 0 or col != 0:
77    PDF_end_page(p)
78
79PDF_close(p)
80PDF_close_pdi(p, manual)
81PDF_delete(p)
82