如何将多个PDF文件合并/转换为一个大型PDF文件?
我尝试了以下操作,但目标文件的内容与预期不符:
convert file1.pdf file2.pdf merged.pdf
我需要一个非常简单/基本的命令行(CLI)解决方案。最好是我可以将合并/转换的输出直接管道化为pdf2ps(正如我之前在这里提出的问题:Linux管道化(convert->pdf2ps->lp)中所尝试的那样)。
如何将多个PDF文件合并/转换为一个大型PDF文件?
我尝试了以下操作,但目标文件的内容与预期不符:
convert file1.pdf file2.pdf merged.pdf
我需要一个非常简单/基本的命令行(CLI)解决方案。最好是我可以将合并/转换的输出直接管道化为pdf2ps(正如我之前在这里提出的问题:Linux管道化(convert->pdf2ps->lp)中所尝试的那样)。
当前回答
此外,pdfjoin a.pdf.pdf将创建一个新的b-joined.pdf,其中包含a.pdf和b.pdf的内容
其他回答
使用PyPI中的pdftools。
下载tar.gz文件并解压缩,然后运行如下命令
python pdftools-1.1.0/pdfmerge.py -o output.pdf -d file1.pdf file2.pdf file3
在运行上述命令之前,应该安装python3
此工具支持以下内容
添加插入去除旋转分裂合并拉链
你可以在GitHub上找到更多细节,它是开源的
您可以使用sejda控制台,免费且开源。解压缩并运行sejda console merge-f file1.pdf file2.pdf-o merged.pdf
它保留了书签、链接注释、acroforms等。实际上,它有很多选项可以使用,只需运行sejda console merge-h即可查看所有选项。
这里有一个我使用的方法,它有效且易于实现。这将需要fpdf和fpdi库,可在此处下载:
FPDF:http://www.fpdf.org/en/download.phpFPDI:https://www.setasign.com/products/fpdi/downloads
require('fpdf.php');
require('fpdi.php');
$files = ['doc1.pdf', 'doc2.pdf', 'doc3.pdf'];
$pdf = new FPDI();
foreach ($files as $file) {
$pdf->setSourceFile($file);
$tpl = $pdf->importPage(1, '/MediaBox');
$pdf->addPage();
$pdf->useTemplate($tpl);
}
$pdf->Output('F','merged.pdf');
虽然它不是命令行解决方案,但它可能会帮助macos用户:
选择您的PDF文件右键单击突出显示的文件选择快速操作>创建PDF
很抱歉,我自己用谷歌找到了答案,运气不错:)
对于感兴趣的人;
我在debian服务器上安装了pdftk(pdf工具包),并使用以下命令实现了所需的输出:
pdftk file1.pdf file2.pdf cat output output.pdf
OR
gs -q -sPAPERSIZE=letter -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=output.pdf file1.pdf file2.pdf file3.pdf ...
这反过来又可以直接输送到pdf2ps中。