forked from nunb/pdfnup
-
Notifications
You must be signed in to change notification settings - Fork 0
/
setup.py
124 lines (102 loc) · 3.87 KB
/
setup.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
import os
import sys
from setuptools import setup
__version__ = "0.4.1"
__license__ = "GPL 3"
__author__ = "Dinu Gherman"
__date__ = "2009-07-06"
long_description = """\
`Pdfnup` is a Python module and command-line tool for layouting multiple
pages per sheet of a PDF document. Using it you can take a PDF document
and create a new PDF document from it where each page contains a number
of minimized pages from the original PDF file.
Right now `pdfnup` should be used on documents with all pages the same
size, and half square page numbers per sheet work best on paper sizes
of the ISO A series.
Basically, `pdfnup` wrapps `pyPdf <http://pypi.python.org/pypi/pyPdf>`_,
a package written by Mathieu Fenniak, which does not provide tools like
this for using the core functionality easily from the command-line or
from a Python module. `Pdfnup` itself was much inspired from some code
written by Henning von Bargen - thanks, Henning!
This release provides full support for file objects and StringIO objects
for input as well as output documents and fixes a nasty buglet in the
command-line invocation script.
Features
++++++++
- save minimized pages of a given PDF document in a new PDF document
- place n pages per sheet, with n being square or half square
- customize layout order, both horizontally and vertically
- turn rotated pages to make them all have the same format
- allow patterns for output files
- supports file-like objects for input and output documents
- install a Python module named ``pdfnup.py``
- install a Python command-line script named ``pdfnup``
- provide a Unittest test suite
Examples
++++++++
You can use `pdfnup` as a Python module e.g. like in the following
interactive Python session::
>>> from pdfnup import generateNup
>>>
>>> generateNup("file.pdf", 8, verbose=True)
written: file-8up.pdf
>>>
>>> generateNup("file.pdf", 8, dirs="LD", verbose=True)
written: file-8up.pdf
>>>
>>> f = open("file.pdf")
>>> generateNup(f, 8, outPathPatternOrFile="out-%(n)dup.pdf", verbose=True)
written: out-8up.pdf
In addition there is a script named ``pdfnup``, which can be used
more easily from the system command-line like this (you can see many
more examples when typing ``pdfnup -h`` on the command-line)::
$ pdfnup -V file.pdf
written: file-4up.pdf
$ pdfnup -V -n 8 file.pdf
written: file-8up.pdf
$ pdfnup -V -n 8 -l LD file.pdf
written: file-8up.pdf
$ pdfnup -V -n 9 /path/file[12].pdf
written: /path/file1-9up.pdf
written: /path/file2-9up.pdf
$ pdfnup -V -n 8 -o "%(dirname)s/foo.pdf" /path/file.pdf
written: /path/foo.pdf
"""
classifiers = [
"Development Status :: 4 - Beta",
"Environment :: Console",
"Intended Audience :: End Users/Desktop",
"Intended Audience :: Developers",
"License :: OSI Approved :: GNU General Public License (GPL)",
"Operating System :: MacOS :: MacOS X",
"Operating System :: POSIX",
"Operating System :: Microsoft :: Windows",
"Programming Language :: Python",
"Topic :: Utilities",
"Topic :: Printing",
]
baseURL = "http://www.dinu-gherman.net/"
setup(
name = 'pdfnup',
version = __version__,
description = 'Layout multiple pages per sheet of a PDF document.',
long_description = long_description,
date = __date__,
author = __author__,
author_email = "@".join(["gherman", "darwin.in-berlin.de"]),
maintainer = __author__,
maintainer_email = "@".join(["gherman", "darwin.in-berlin.de"]),
license = __license__,
platforms = ['Posix', 'Windows'],
keywords = ['PDF', 'minimizig pages'],
url = baseURL,
download_url = baseURL + "tmp/pdfnup-%s.tar.gz" % __version__,
py_modules = ["pdfnup"],
scripts = ['pdfnup'],
classifiers = classifiers,
# for setuptools, only
zip_safe = False,
install_requires = ["pypdf>=3.3.0"],
)