首页 > 编程语言 >Python 如何实现合并 PDF 文件?

Python 如何实现合并 PDF 文件?

时间:2023-11-13 16:46:28浏览次数:35  
标签:文件 Python 合并 文档 file pdf PDF path

在处理多个 PDF 文档时,频繁地打开关闭文件会严重影响效率。因此,对于一大堆内容相关的 PDF 文件,我们可以先将这些 PDF 文件合并起来再操作,从而提高工作效率。比如,在传送大量的 PDF 文档时,在处理同一项目下的多个 PDF 文档时,或在打印一系列 PDF 文档时,将文档合并起来可以减少工作量。本文将分享3种使用 Python 合并 PDF 文件的实现方法。

 

安装:

Python中合并PDF需要用到 Spire.PDF for Python 库。 安装十分简单,直接使用以下pip命令即可。或者可以下载后再安装。

pip install Spire.PDF

 

方法1:通过 MergeFiles () 直接合并 PDF 文件

MergeFiles(List[str]) 方法可以将一个文件路径列表对应的所有 PDF 文件按列表顺序合并为一个 PDF 文件。代码如下:

from spire.pdf.common import *
from spire.pdf import *
import os

# 指定文件夹路径
folder_path = "G:/文档/"

# 遍历文件夹中的文件并创建文件路径列表
pdf_files = []
for file_name in sorted(os.listdir(folder_path)):
    if file_name.endswith(".pdf"):
        file_path = os.path.join(folder_path, file_name)
        pdf_files.append(file_path)

# 合并PDF文档
pdf = PdfDocument.MergeFiles(pdf_files)

# 保存结果文档
pdf.Save("output/合并PDF.pdf", FileFormat.PDF)
pdf.Close()

 

方法2:通过AppendPage() 插入页面合并 PDF 文件

AppendPage(PdfDocument) 方法可以在一个 PDF 文件中插入另一个 PDF 文件的所有页面。 具体实现代码参考:

from spire.pdf.common import *
from spire.pdf import *

# 遍历文件夹中的文件,载入每个PDF文件PdfDocument对象并列表
folder_path = "G:/文档/"
pdf_files = []
for file_name in sorted(os.listdir(folder_path)):
    if file_name.endswith(".pdf"):
        file_path = os.path.join(folder_path, file_name)
        pdf_files.append(PdfDocument(file_path))

# 创建一个PdfDocument对象
newPdf = PdfDocument()

# 将加载的PDF文档的页面插入到新的PDF文档中
for pdf in pdf_files:
    newPdf.AppendPage(pdf)

# 保存新的PDF文档
newPdf.SaveToFile("output/插入页面合并PDF.pdf")

 

方法3:合并不同 PDF 文件的指定页面

InsertPage (PdfDocument, pageIndex: int) 方法可以将一个 PDF 文件的指定页面插入到另一个 PDF 文件中。我们可以通过这个方法合并不同 PDF 文件的指定页面。

from spire.pdf import *
from spire.pdf.common import *

# 创建PDF文件路径列表
file1 = "示例1.pdf"
file2 = "示例2.pdf"
file3 = "示例3.pdf"
files = [file1, file2, file3]

# 加载每个PDF文件并添加到列表中
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("output/合并不同PDF的指定页面.pdf")

 

以上就是关于如何使用 Spire.PDF for Python 合并 PDF 文件的操作介绍。大家可自行测试,如有问题欢迎反馈讨论。

如果想了解更多此第三方Python库的功能,可前往 Spire.PDF for Python 中文教程

标签:文件,Python,合并,文档,file,pdf,PDF,path
From: https://www.cnblogs.com/Yesi/p/17829475.html

相关文章

  • 2、python脚本采集温州市数据开放平台数据
    1、采集网址url:https://data.wenzhou.gov.cn/jdop_front/index.do需求:获取数据资源-数据来源单位(龙湾区50)的信息具体要获取的信息如下:名称、摘要、更新、数源单位、地址、联系方式、数据领域、访问次数、下载次数、更新日期、发布日期、数据量。 2、浏览器审查页面返回的数......
  • 代码随想训练营第三十二天(Python)| 122.买卖股票的最佳时机 II、55. 跳跃游戏、45.跳跃
    122.买卖股票的最佳时机II1、贪心classSolution:defmaxProfit(self,prices:List[int])->int:res=0foriinrange(1,len(prices)):res+=max(prices[i]-prices[i-1],0)returnres2、动态规划classSolution:d......
  • pip下载python软件包时报错 Could not find a version that satisfies the requiremen
    pip下载python软件包时报错,使用了国内源等各种方法,后来才知道是电脑中打开了抓包工具;打开抓包工具后一定要关闭抓包工具,这样下载软件包就下载下来了关闭抓包工具后,下载成功了......
  • [-007-]-Python3+Unittest+Selenium Web UI自动化测试之等待
    selenium中,经常会出现元素还没有加载出来,浏览器找不到元素而报错的问题,设置等待是保证脚本运行的一个重要手段,常用的等待有三种--强制等待、隐式等待、显示等待。1.强制等待time.sleep(10)必须等待10s,不太实用2.隐式等待driver.implicitly_wait(最大等待时间X秒)设置一次,则......
  • Excel word pdf查找
    importorg.apache.commons.lang.StringUtils;importorg.apache.pdfbox.pdmodel.PDDocument;importorg.apache.pdfbox.text.PDFTextStripper;importorg.apache.poi.ooxml.POIXMLDocument;importorg.apache.poi.openxml4j.opc.OPCPackage;importorg.apache.poi.xssf.......
  • Python中传参数args=(3,) 为什么要加上逗号
    python中传参数的是时候如果直接传args=(3),那么解释器会觉得你是传了一个数字而不是元组。只有args=(3,)这样传才会默认为传进一个元组。这是格式要求。例子如下 在pycharm上面创建线程的时候,只传一个参数会显示高亮警告: ......
  • Python requirements.txt安装用法介绍
    一、什么是requirements.txt文件在Python项目开发中,通常需要安装多个Python包。当我们在新的项目中启动一个虚拟环境,并且想要在新的虚拟环境中安装之前的依赖包时,就可以使用requirements.txt文件来完成。这个文件包含了所有需要安装的依赖包和其版本号。requirements.txt文件可以在......
  • 使用tracemalloc对python内存进行分析
    1.通过两次快照对importtracemalloc#这个是python自带的defon_start():'''需要测试的代码'''passtracemalloc.start()snapshot1=tracemalloc.take_snapshot()on_start()#需要测试的代码snapshot2=tracemalloc.take_snapshot(......
  • python爬虫实战-小说爬取
    python爬虫实战-小说爬取基于requests模块与lxml模块编写的爬虫,目标小说网站为https://www.hongxiu.com/category/基本思路主要内容分为三个部分使用requests模块获取网页内容使用lxml模块进行网页解析将解析出来的数据存储进MySQL数据库中获取网页内容网站分析......
  • python 脚本打包成exe可运行文件
    在Python 3中使用Tkinter编写GUI应用程序既简单又有趣。然而,如果你想与其他人分享你的应用程序,那么你需要将源代码和必要的库文件一起打包成一个可执行文件。本文将介绍如何使用pyinstaller将Python 3脚本打包成一个.exe文件并将Tkinter应用程序部署到其他计算机上。安装pyinstal......