下述代码是一个Python脚本,它结合了之前提供的代码,并增加了一个新的功能:将转换得到的PDF文件合并为一个PDF文件,并且可以选择是否导入原始PDF文件的书签。
-- coding:utf-8 --
import os # 导入系统功能模块
from win32com.client import Dispatch, DispatchEx # 导入pywin32模块的client包下的函数
from win32com.client import constants # 导入pywin32模块的client包下的保存COM常量的类
from win32com.client import gencache # 导入pywin32模块的client包下的gencache函数
import re # 导入正则表达式模块
import sys, codecs # 导入标准模块
from PyPDF2 import PdfReader, PdfMerger # 导入第三方模块PyPDF2
‘’’
合并pdf文件,输出的pdf文件按输入的pdf文件名生成书签
‘’’
def mergefiles(path, output_filename, import_bookmarks=False):
‘’’ 遍历目录下的所有pdf将其合并输出到一个pdf文件中, # 返回数字(将按该数字排序)输出的pdf文件默认带书签,
书签名为之前的文件名。默认情况下原始文件的书签不会导入,使用import_bookmarks=True可以将原文件所带的书签也
导入到输出的PDF文件中
‘’’
merger = PdfMerger() # 创建PDF合并对象
filelist = getfilenames(filepath=path,filelist_out=[], file_ext=‘.pdf’) # 获取要合并的PDF文件
if len(filelist) == 0: # 判断是否存在要合并的文件
print(“当前目录及子目录下不存在pdf文件”)
sys.exit() # 退出文件系统
for filename in filelist: # 遍历文件列表
f = codecs.open(filename, ‘rb’) # 使用codecs的open()方法打开文件时,会自动转换为内部Unicode编码
file_rd = PdfReader(f)
short_fil