每个命令行调整多个单个 PDF 的大小
Resize multiple single PDF per command line
我们在一个文件夹中有大约 100 个 PDF,它们具有不同的页面大小(即 A4,更奇怪的),但所有的长宽比都是 A4。现在我们需要将所有的尺寸调整到相同的尺寸,即 A4。
目前我们有 Sejda 用于合并每个批处理文件的一些 PDF。因此,我们希望再次为每个批处理文件提供一个解决方案。
In this question 他们在其他解决方案中建议使用 PDFtk 或 PDF 拆分和合并,但他们似乎不提供此功能。还有其他方法或提示吗?
您可以尝试使用 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 中的字体出现问题:
- 您安装的 Ghostscript 不是最新版本。
- 您输入的 PDF 文件使用子集字体,其中字体名称的 'unique' 前缀(例如
XAGTRU+
)根本不是唯一的,而是可以预测的。 OpenOffice/LibreOffice 和其他 PDF 生成器以 BAAAAA+
、CAAAAA+
、DAAAAA+
开头(可以预见)。这导致输入 PDF 注入 BAAAAA+Arial
子集字体的多个实例,这些字体 不是 唯一但 不同 并且仍然使用相同的名称。
我们在一个文件夹中有大约 100 个 PDF,它们具有不同的页面大小(即 A4,更奇怪的),但所有的长宽比都是 A4。现在我们需要将所有的尺寸调整到相同的尺寸,即 A4。
目前我们有 Sejda 用于合并每个批处理文件的一些 PDF。因此,我们希望再次为每个批处理文件提供一个解决方案。
In this question 他们在其他解决方案中建议使用 PDFtk 或 PDF 拆分和合并,但他们似乎不提供此功能。还有其他方法或提示吗?
您可以尝试使用 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 中的字体出现问题:
- 您安装的 Ghostscript 不是最新版本。
- 您输入的 PDF 文件使用子集字体,其中字体名称的 'unique' 前缀(例如
XAGTRU+
)根本不是唯一的,而是可以预测的。 OpenOffice/LibreOffice 和其他 PDF 生成器以BAAAAA+
、CAAAAA+
、DAAAAA+
开头(可以预见)。这导致输入 PDF 注入BAAAAA+Arial
子集字体的多个实例,这些字体 不是 唯一但 不同 并且仍然使用相同的名称。