27

使用 php,我必须将其中包含多个页面的单个 pdf 文件拆分为每个文件一页的大量 PDF 文件。我使用 pdftk 并且工作正常,但是为每个页面创建的每个 pdf 都非常大。我的原始PDF是7MB(里面有70页),用pdftk分割创建的每个文件的总和超过70MB。

有人知道是否有为 pdftk 设置小文件输出的属性?

4

5 回答 5

34

您始终可以指定该compress选项 - 例如:

pdftk input.pdf burst output output_%02d.pdf compress

请注意,pdftk只是将 PDF 文件的内容从输入复制到输出中,并不能做太多优化消除臃肿的工作。因此,如果您的输入 PDF 很大/很复杂,那么您的输出 PDF 也会如此。另请注意,文档中嵌入的任何字体最终可能会在每个输出文档中重复,从而占用更多空间。

于 2013-11-15T00:23:46.410 回答
19

您可以使用pdftk并尝试

pdftk source.pdf cat 1-100 output try1.pdf
pdftk source.pdf cat 101-end output try2.pdf
于 2015-03-08T22:44:35.007 回答
11

拆分 PDF 文件时,有时很难避免每个输出文件中仅包含某些页面所需的信息。

cpdf努力避免这种情况——您可以尝试一下,看看会发生什么。您可能会发现它在您的文件中并不比 pdftk 好,但它应该是。

披露:我是 cpdf 的作者。

于 2013-11-15T13:51:47.720 回答
1

有类似的问题。但不适用于 1:1 的问题。无论如何,有人可能会发现它很有用:

  1. 我有一个非常大的 pdf 文件 - original.pdf - 超过 240MB。几乎不可能使用它。我用evince将其打印为 pdf,并删除了打印机设置中的任何缩放。这生成了一个大约 102MB 的文件 - new.pdf!显然所有嵌入的字体、书签等都被删除了。
  2. 为了取回书签,我使用cpdf从原始 pdf 文档中提取书签并将其应用于新文档。生成的文档 - result.pdf - 在任何 pdf 查看器中都易于浏览且速度非常快。

参考:cpdf提取和应用书签: http: //www.coherentpdf.com/cpdfmanual/node38.html

cpdf -list-bookmarks original.pdf > booksmarks.txt
cpdf -add-bookmarks booksmarks.txt new.pdf -o result.pdf
于 2015-11-09T22:09:43.640 回答
0

我有同样的问题,我已经测试了这些答案中找到的PdfTk两个程序。cPDF

我的 PDF 文件大小为 5744k。

使用以下PDFTK命令

我获得了一个 501k 文件。

set pdftk="C:\Program Files (x86)\Tools\PDFtk\bin\pdftk.exe"
%pdftk% "RY18BPSA.UserManual.pdf" CAT 1 9-15 220 output "RY18BPSA.PDFTK.pdf"

使用以下CPDF命令

set cpdf="C:\Program Files\Tools\cpdf\cpdf.exe"
%cpdf% "RY18BPSA.UserManual.pdf" 1,9-15,220 -o "RY18BPSA.CPDF.pdf"

我得到一个 592k 的文件。


只是为了好玩,我还测试了将所需页面直接打印到Microsoft to PDF伪打印机,我得到了一个 250k 的文件!

我可以快速看到与其他生成文件的唯一区别是页面格式已更改并被 A4 页面替换,并且只能使用PDF 程序的打印 GUI 作为 Acrobat Reader 或 Foxit Reader 手动完成。

PS:我可以搜索所有生成的拆分文件!

于 2021-05-22T06:30:41.207 回答