2015-02-11 13 views
1

我们在具有不同页面大小(即A4,较大的一个)的文件夹中具有大约100个PDF,但都是A4长宽比。现在我们需要将所有尺寸调整为相同的尺寸,即A4。根据命令行调整多个单个PDF的大小

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

In this question他们建议使用PDFtk或PDF拆分和合并的其他解决方案,但他们似乎没有提供此功能。任何其他方法或提示?

回答

3

你可以尝试为此使用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+。这导致由输入PDF文件注入其中的唯一的,但不同,仍然使用相同的名称的BAAAAA+Arial子集化的字体多个实例。