Linux

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > Linux > Linux合并多个PDF为一个

Linux下合并多个PDF文件为一个PDF文件的方法汇总

作者:1010n111

在 Linux 系统中,有时需要将多个 PDF 文件合并成一个大的 PDF 文件,例如,在整理文档、生成报告等场景下,合并多个相关的 PDF 文件可以提高文档的整体性和可读性,本文给大家介绍了一些常见的方法,需要的朋友可以参考下

Linux 下合并多个 PDF 文件为一个 PDF 文件的方法

技术背景

在 Linux 系统中,有时需要将多个 PDF 文件合并成一个大的 PDF 文件。例如,在整理文档、生成报告等场景下,合并多个相关的 PDF 文件可以提高文档的整体性和可读性。有多种工具和方法可实现这一需求,下面将介绍一些常见的解决方案。

实现步骤

1. 使用 pdfunite

pdfunitepoppler 工具集的一部分,安装较为常见,使用也相对简单。

pdfunite in-1.pdf in-2.pdf in-n.pdf out.pdf

为避免覆盖最后一个输入文件,可添加文件存在性检查:

export output_file=out.pdf && \
! test -e $output_file && \
pdfunite in-1.pdf in-2.pdf in-n.pdf $output_file

2. 使用 Ghostscript

Ghostscript 是一个强大的工具,无需额外安装其他软件。

gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=merged.pdf mine1.pdf mine2.pdf

对于低分辨率的 PDF 文件,可使用以下改进版本:

gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -dPDFSETTINGS=/prepress -sOutputFile=merged.pdf mine1.pdf mine2.pdf

还可使用 -o 选项简化命令:

gs -q -sDEVICE=pdfwrite -dPDFSETTINGS=/prepress -o merged.pdf mine1.pdf mine2.pdf

3. 使用 pdftk

pdftk 可以处理加密的 PDF 文件。

pdftk file1.pdf file2.pdf cat output output.pdf

4. 使用 qpdf

qpdf 适合处理复杂的 PDF 操作,如选择特定页面合并。

qpdf --empty --pages *.pdf -- out.pdf

5. 使用 pdfjoin

pdfjoin a.pdf b.pdf

这会创建一个新的 b-joined.pdf 文件,包含 a.pdfb.pdf 的内容。

6. 使用 Python 和 PyPDF2

当需要合并大量文件时,可使用 Python 结合 PyPDF2 库。

from pathlib import Path
from PyPDF2 import PdfMerger
import natsort

DIR = Path("dir-with-pdfs/")
OUTPUT = "output.pdf"

paths = DIR.glob("*.pdf")
paths = natsort.natsorted(paths)

merger = PdfMerger()

for path in paths:
    merger.append(path)

merger.write(OUTPUT)

核心代码

以下是使用 Ghostscript 合并多个 PDF 文件的核心代码:

gs -q -sDEVICE=pdfwrite -dPDFSETTINGS=/prepress -o merged.pdf mine1.pdf mine2.pdf

使用 Python 和 PyPDF2 合并 PDF 文件的核心代码:

from PyPDF2 import PdfMerger

merger = PdfMerger()
pdf_files = ['file1.pdf', 'file2.pdf', 'file3.pdf']

for pdf in pdf_files:
    merger.append(pdf)

merger.write('merged.pdf')
merger.close()

最佳实践

常见问题

以上就是Linux下合并多个PDF文件为一个PDF文件的方法汇总的详细内容,更多关于Linux合并多个PDF为一个的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
阅读全文