【问题标题】:Clone PDF file in a single page在单个页面中克隆 PDF 文件
【发布时间】:2010-07-28 13:58:21
【问题描述】:

我有一个 PDF 文件,它的大小正好是 A4 页面的 1/5,还有一个 script 通过重复附加将其转换为单个 A4 页面。问题是 ImageMagick 仅适用于位图图形,而我的 PDF 包含文本和详细的矢量图形。结果是文本数据丢失,文件更大,打印输出更差。

我希望能够与convert -density 1200 $pdf_file $pdf_file $pdf_file $pdf_file $pdf_file +append $a4_file 行一样无需对矢量图形进行光栅化

【问题讨论】:

  • 当您说“A4 页面大小的 1/5”时:您的意思是宽度的 1/5 还是高度的 1/5?
  • landscape A4纸宽度的1/5,即|||||是我要创建的格式。如果需要,用 pdftk 旋转也没问题。
  • 您使用的是 Windows、Mac OS X 还是 Linux/Unix?
  • 哦,我只是看到它似乎是 same 文件,5 次,您想将其强加在 A4 横向介质上...
  • Linux,是的,它是同一个文件。我目前正在尝试使用 pstops 和 psnup,但它们的语法晦涩难懂,而且我似乎永远无法输出 A4。

标签: pdf imagemagick pdftk


【解决方案1】:

pdftk 和 pdfnup 真的是最棒的!

finished script 的伪代码版本:

for each file:
    inkscape --export-pdf
    pdftk (pdf-file x 5) cat output 5.pdf
    pdfnup 5.pdf --nup 5x1 --paper a4paper --orient landscape --outfile {recto,verso}.pdf

pdftk R=recto.pdf V=verso.pdf cat R1W V1E output bookmark.pdf

【讨论】:

  • 哦? pdfnup 现在可以可靠地工作了吗?几年前我玩过它,但它没有按需要工作。期间已经忘记了。感谢您提及它,我需要再次了解它。
  • 只是为了确定:我们在谈论... - ... Dhino Gherman 的基于 Python 的 pdfnup? (我是)- ...或 David Firth 的基于 pdfTeX/pdfpages 的 pdfnup?
  • 第二个,安装了Ubuntu包“pdfjam”。
【解决方案2】:

好的,我知道这是如何工作的,但我目前无法对其进行测试。

现在考虑这三个命令(如果您不在 Windows 上,则需要 Unix-ification):

 gswin32c ^
    -sDEVICE=pdfwrite ^
    -o p1.pdf ^
    -dFIXEDMEDIA ^
    -sDEFAULTPAPERSIZE=a4 ^
    -r600x600 ^
    -dDEVICEWIDTHPOINTS=842 ^
    -dDEVICEHEIGHTPOINTS=595 ^
    -c "<</PageOffset [0 0]>> setpagedevice" ^
    -f c:/path/to/first.pdf

 gswin32c ^
    -sDEVICE=pdfwrite ^
    -o p2.pdf ^
    -dFIXEDMEDIA ^
    -sDEFAULTPAPERSIZE=a4 ^
    -r600x600 ^
    -dDEVICEWIDTHPOINTS=842 ^
    -dDEVICEHEIGHTPOINTS=595 ^
    -c "<</PageOffset [168.4 0]>> setpagedevice" ^
    -f c:/path/to/second.pdf

 gswin32c ^
    -sDEVICE=pdfwrite ^
    -o p3.pdf ^
    -dFIXEDMEDIA ^
    -sDEFAULTPAPERSIZE=a4 ^
    -r600x600 ^
    -dDEVICEWIDTHPOINTS=842 ^
    -dDEVICEHEIGHTPOINTS=595 ^
    -c "<</PageOffset [336.8 0]>> setpagedevice" ^
    -f c:/path/to/third.pdf

除非我有任何计算错误,否则这些将您的前 3 个 PDF 文件“打印”到 A4 横向介质上,但将每个文件的页面偏移量移动“n*(横向宽度的 1/5)”点,从 n=0 开始。 (A4 为 842x595 点)。你明白了……

现在您将拥有 3 个(以及以后:5 个)新 PDF 文件,而无需任何额外的位图图形。

您现在的工作仍然是使用pdftk(您似乎很熟悉)将这 3 (5) 个 PDF 页面相互叠加。

如果这对您有用,请提供一些反馈。 (并且不要让黑洞逃脱:-))。

【讨论】:

  • 看起来是一个有趣的解决方案,但我希望有更简单的解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-15
  • 2020-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多