跳转到主要内容

布局PDF文档每页的多页。

项目描述

Pdfnup 是一个Python模块和命令行工具,用于布局PDF文档每页的多页。使用它,您可以创建一个新的PDF文档,其中每个页面都包含来自原始PDF文件的一些最小化页面。

目前,pdfnup 应用于所有页面大小相同的文档,并且每张纸上的半平方页码在ISO A系列纸张大小上效果最佳。

基本上,pdfnup 包装了由 Mathieu Fenniak 编写的 pyPdf 包,该包不提供此类工具,无法轻松地从命令行或Python模块中使用核心功能。《Pdfnup》本身在很大程度上受到了 Henning von Bargen 编写的某些代码的启发 - 感谢,Henning!

本发行版提供了对文件对象和StringIO对象的全支持,包括输入文档和输出文档,并修复了命令行调用脚本中的一个讨厌的小错误。

功能

  • 将指定PDF文档的最小化页面保存到新的PDF文档中

  • 每页放置n页,其中n为平方或半平方

  • 自定义布局顺序,包括水平和垂直方向

  • 旋转页面以使它们具有相同的格式

  • 允许输出文件的图案

  • 支持输入和输出文档的文件样对象

  • 安装一个名为 pdfnup.py 的Python模块

  • 安装一个名为 pdfnup 的 Python 命令行脚本

  • 提供 Unittest 测试套件

历史

  • 2012-06-19 (0.4.2):在 pyPdf 1.13 中删除 ImmutableSet 后修复了一个错误。

示例

您可以将 pdfnup 作为 Python 模块使用,例如在以下交互式 Python 会话中

>>> 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

此外,还有一个名为 pdfnup 的脚本,可以更方便地从系统命令行使用,如下所示(在命令行中输入 pdfnup -h 可以看到更多示例)

$ 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

项目详情


支持