前言
合并PDF能帮助我们将多个内容相关PDF文件合并为一个文件,以便于后续能更好地分类、管理和储存文件。如果想要将多个PDF中某些页面发送给他人的话,也可以事先将选中的页面合并至一个文件中;这样不仅可以减少发送和接收的时间,还可以确保收件人能够在一个统一的文档中找到所有的信息。今天的这篇文章将分享如何利用Python代码来合并PDF。下面是工具的导入方法和示例代码。
程序库
Spire.PDF for Python 是一个专业的Python库,支持创建,处理或者转换PDF文件。使用过程中也不依赖其他的第三方产品。虽然是商业版产品,但提供了30天的免费试用。
下载Spire.PDF for Python即可查看各种示例代码。
安装方法
在此之前,我们需要安装 Spire.PDF for Python 和 plum-dispatch v1.7.4。
- 打开VS Code,在中搜索到Python并安装。
- 依次选择Explorer - NO FOLRDER OPENED- Open Folder
- 选择一个文件夹,然后在里面新建一个“ .py ”文件。
- 点击Terminal- New Terminal
- 输入命令:pip install Spire.PDF
合并多个PDF文件
步骤
- 导入所需的库模块。
- 创建一个包含要合并的 PDF 文件路径的列表。
- 使用 Document.MergeFiles(inputFiles: List[str]) 方法将这些 PDF 文件合并为一个 PDF 文件。
- 调用 PdfDocumentBase.Save(filename: str, FileFormat.PDF) 方法将合并后的PDF文件保存到指定的输出路径并释放资源。
示例代码
from spire.pdf.common import *
from spire.pdf import *
#创建一个PDF文件路径列表
inputFile1 = "C:/Users/Administrator/Desktop/Sample-1.pdf"
inputFile2 = "C:/Users/Administrator/Desktop/Sample-2.pdf"
inputFile3 = "C:/Users/Administrator/Desktop/Sample-3.pdf"
files = [inputFile1, inputFile2, inputFile3]
#调用方法来合并列表中的PDF
pdf = PdfDocument.MergeFiles(files)
#保存生成的结果文档
pdf.Save("C:/Users/Administrator/Desktop/MergePDF.pdf", FileFormat.PDF)
pdf.Close()
合并多个PDF文件中的指定页面
步骤
- 导入所需的库模块。
- 创建一个包含要合并的 PDF 文件路径的列表。
- 循环列表中的每个文件,并将其加载为 PdfDocument 对象;然后将它们添加到新的列表中。
- 创建一个新的 PdfDocument 对象作为目标文件。
- 使用 PdfDocument.InsertPage(PdfDocument, pageIndex: int) 方法或 PdfDocument.InsertPageRange(PdfDocument, startIndex: int, endIndex: int) 方法从加载的PDF文件中选择页面并插入到新的PdfDocument对象中。
- 最后,调用 PdfDocument.SaveToFile() 方法将新的PdfDocument对象保存到指定的输出路径。
示例代码
from spire.pdf import *
from spire.pdf.common import *
#创建一个PDF文件路径列表
file1 = "C:/Users/Administrator/Desktop/Sample-1.pdf"
file2 = "C:/Users/Administrator/Desktop/Sample-2.pdf"
file3 = "C:/Users/Administrator/Desktop/Sample-3.pdf"
files = [file1, file2, file3]
#将每个PDF文件加载为PdfDocument对象,并将其添加到列表中
pdfs = []
for file in files:
pdfs.append(PdfDocument(file))
#创建一个新的PdfDocument类的对象
newPdf = PdfDocument()
#将所选页面从已加载的 PDF 文档中插入到新文档中
newPdf.InsertPage(pdfs[0], 0)
newPdf.InsertPage(pdfs[1], 1)
newPdf.InsertPageRange(pdfs[2], 0, 1)
#保存新的PDF文档
newPdf.SaveToFile("C:/Users/Administrator/Desktop/MergeSelectedPages.pdf")