修复双面打印的 PDF 边距

Edv*_*olm 4 pdf

我有一本免费的 PDF 书,每一页的右边都有很大的边距。我想将它双面打印并使用在线打印服务将其装订到一本书上。问题是我需要将每个奇数页的内容向右移动才能更好地工作。

我无权访问生成文件的 TeX 源代码,而且作者没有提供它,所以我无法重新编译它以进行双面打印。我对适用于 Linux 或 OS X 的任何解决方案感到满意。

对于任何感兴趣的人,该文件是这样的:http : //infolab.stanford.edu/~ullman/mmds/book.pdf

编辑:经过一些修修补补后,我用以下方法做到了:

  1. 我首先使用 pdftk 将 pdf 分成奇数/偶数页的两个文件。

  2. 使用 Skim 我测量了左边距的大小,即 72pts。

  3. 使用 Skim 的选择工具,我在左边为奇数页选择了 72pt 的边距,为偶数页选择了右边的边距,总宽度为 450 磅。为了保持 A4 的比例,我选择 636 pts 作为边界框的高度并使其适合文档。最后,我将偶数/奇数文件裁剪到相应的框中。

  4. 使用 pdftk 合并文件。

  5. 在 OS X 预览中打开文件,打开打印对话框,选择另存为 PDF,选择 A4 作为纸张大小并缩放以适合页面。

从命令行执行此操作会更好,因为使用计算器计算坐标比尝试获取具有正确坐标的边界框要快得多。由于某种原因,在您选择第一个选择点之前,Skim 不会在状态栏中向您显示光标的坐标。

slm*_*slm 5

方法#1 - pdfcrop

有一个名为的命令行工具pdfcrop听起来像您正在寻找的东西。

pdfcrop 是一个实用程序,用于计算和删除输入 PDF 文件中每个页面的空白页边距。生成的输出文件占用内容所需的最小纸张大小,因此适合作为图形包含

例子
$ pdfcrop --margins 10 input.pdf output.pdf
$ pdfcrop --margins ’5 10 5 20’ --clip input.pdf output.pdf
Run Code Online (Sandbox Code Playgroud)

方法#2 - pdfjam

作为替代,还有另一个工具叫做pdfjam.

$ pdfjam --twoside --offset '2cm 0cm' file.pdf
Run Code Online (Sandbox Code Playgroud)

参考

  • pdfcrop 似乎没有为页面寻找共享边界框,而是为每个页面分别计算一个。因此,您最终会得到一堆不同大小的页面。 (2认同)