用python合并pdf,并添加书签

使用Python的pypdf2库,将多个PDF文件合并为一个,并在合并过程中添加书签。首先通过pip安装pypdf2,然后运行示例代码mergePDF.py,将指定的PDF文件逐一添加到新PDF中,最终生成包含所有页面的合并文件,共36页,整个过程耗时0.47秒。
摘要由CSDN通过智能技术生成

之前得到了很多文章的pdf,现在需要把它们合到一个pdf文件中。
使用python库pypdf2可以实现这个功能。
首先要安装
pip install pypdf2
然后运行下面的示例 python mergePDF.py
mergePDF.py

# -*- coding:utf-8*-

import os
import os.path
from PyPDF2 import PdfFileReader, PdfFileWriter
import time
import glob


def getFileName(filepath):
    file_list = glob.glob("{}/*.pdf".format(filepath))
    # 默认按照字典序排序,也可以安装自定义的方式排序
    # file_list.sort()
    return file_list

###########合并同一个文件夹下所有PDF文件###############
def MergePDF(filepath, outfile):
    output = PdfFileWriter(
  • 4
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
你可以使用 PyPDF2 库来合并多个 PDF 文件。使用该库,您可以将多个 PDF 文件合并为一个 PDF 文件,然后将书签添加合并后的文件。 下面是对应的 Python 代码: ```python import os import sys import PyPDF2 def merge_pdfs(dir_path, output_filename): pdf_files = [f for f in os.listdir(dir_path) if f.endswith('.pdf')] pdf_files = sorted(pdf_files) pdf_writer = PyPDF2.PdfFileWriter() for pdf_file in pdf_files: pdf_reader = PyPDF2.PdfFileReader(os.path.join(dir_path,pdf_file)) for page in range(pdf_reader.getNumPages()): pdf_writer.addPage(pdf_reader.getPage(page)) if os.path.exists(output_filename): os.remove(output_filename) with open(output_filename, 'wb') as fh: pdf_writer.write(fh) pdf_output = PyPDF2.PdfFileReader(output_filename, strict=False) pdf_output_with_bookmark = PyPDF2.PdfFileWriter() for page in range(pdf_output.getNumPages()): pdf_output_with_bookmark.addPage(pdf_output.getPage(page)) bookmark_page = 1 for f in pdf_files: pdf_reader = PyPDF2.PdfFileReader(os.path.join(dir_path,f)) pdf_output_with_bookmark.addBookmark(f,bookmark_page) bookmark_page += pdf_reader.getNumPages() with open(output_filename, 'wb') as fh: pdf_output_with_bookmark.write(fh) if __name__ == "__main__": dir_path = "/path/to/pdf/files" output_filename = "/path/to/output/file.pdf" merge_pdfs(dir_path, output_filename) ``` 其中,`dir_path` 是你存储待合并 PDF 文件的目录路径,`output_filename` 是输出 PDF 文件的路径。 该脚本首先将 PDF 文件加入到一个新的 PDF 文件中,然后将书签添加到每个文件的开头,最后将所有书签添加到一个合并后的 PDF 文件中。
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值