1

我们在一个文件夹中有大约 100 个 PDF,页面大小不同(即 A4,更奇怪的),但都具有 A4 的长宽比。现在我们需要将所有的大小调整为相同的大小,即 A4。

目前,我们使用Sejda来合并每个批处理文件的一些 PDF。因此,我们希望再次为每个批处理文件提供一个解决方案。

在这个问题中,他们建议在其他解决方案中使用 PDFtk 或 PDF 拆分和合并,但他们似乎不提供此功能。还有其他方法或提示吗?

4

1 回答 1

4

您可以尝试为此使用 Ghostscript。以下命令将每个单独的 PDF 调整为 A4:

for input in *.pdf ; do
     gs                        \
       -o A4-resized-${input}  \
       -sDEVICE=pdfwrite       \
       -dPDFFitPage            \
       -g5950x8420             \
       -dPDFSETTINGS=/prepress \
        ${input}
 done

此命令将从所有输入文件创建一个合并的 PDF,并在此过程中调整每个页面的大小:

 gs                        \
   -o A4-resized-${input}  \
   -sDEVICE=pdfwrite       \
   -dPDFFitPage            \
   -g5950x8420             \
   -dPDFSETTINGS=/prepress \
    *.pdf

如果 shell 通配符*.pdf没有按照您的喜好对页面进行排序,您必须自己进行:

[...gs-cmd...]  input1.pdf input2.pdf input3.pdf [input4.pdf ...] 

注意事项:在这些情况下,第二个选项(合并和调整单个 PDF 的大小)可能会导致合并 PDF 中的字体出现问题:

  1. 您的 Ghostscript 安装不是最新版本。
  2. 您的输入 PDF 文件使用子集字体,其中字体名称的“唯一”前缀(例如XAGTRU+)根本不是唯一的,而是可预测的。众所周知,OpenOffice/LibreOffice 和其他 PDF 生成器的前缀(可预测地)总是以BAAAAA+CAAAAA+、 . 开头DAAAAA+。这导致BAAAAA+Arial输入 PDF 注入的子集字体的多个实例不是唯一的,而是不同的,并且仍然使用相同的名称。
于 2015-02-11T13:06:03.310 回答