PDF 文件包(Portfolio)是将多个文件组合成一个单独的 PDF 文档。它作为一种综合且交互式的展示形式,可以展示各种类型的内容,例如文档、图片、演示文稿及视频等等。与传统的 PDF 文档不同,PDF 文件包允许您以一种协调和有组织的方式展示多个文件,为浏览者提供流畅的浏览体验。本文将介绍如何使用 Spire.PDF for Python 在 Python 中创建和识别 PDF 文件包。
安装 Spire.PDF for Python
本教程需要 Spire.PDF for Python 和 plum-dispatch v1.7.4。您可以通过以下 pip 命令将它们轻松安装到 Windows 中。
pip install Spire.PDF
如果您不确定如何安装,请参考此教程: 如何在 Windows 中安装 Spire.PDF for Python
Python 创建一个 PDF 文件包
Spire.PDF for Python 提供了 PdfDocument.Collection.AddFile() 方法将文件添加到 PDF 中,从而生成一个 PDF 文件包。此外,您还可以使用 PdfDocument.Collection.Folders.CreateSubfolder() 方法添加文件夹来组织 PDF 文件包中的文件。具体步骤如下:
- 创建一个 PdfDocument 类的实例。
- 使用 PdfDocument.LoadFromFile() 方法加载 PDF 文档。
- 遍历第一个文件夹中的文件,并使用 PdfDocument.Collection.AddFile() 方法将它们添加到 PDF 包文件中。
- 遍历第二个文件夹中的文件。对于每个文件,使用 PdfDocument.Collection.Folders.CreateSubfolder() 方法在 PDF 组合文件中创建一个单独的文件夹,然后使用 PdfFolder.AddFile() 方法将文件添加到相应的文件夹中。
- 使用 PdfDocument.SaveToFile() 方法保存文档。
- Python
from spire.pdf.common import *
from spire.pdf import *
import glob
# 指定包含在PDF文件包中的文件所在的文件夹
input_folder1 = "文件目录1/*"
input_folder2 = "文件目录2/*"
# 创建一个PdfDocument对象
doc = PdfDocument()
# 获取第一个文件夹中的文件路径列表
files1 = glob.glob(input_folder1)
# 遍历文件列表
for i, file in enumerate(files1):
# 将每个文件添加到PDF文件包中
doc.Collection.AddFile(file)
# 获取第二个文件夹中的文件路径列表
files2 = glob.glob(input_folder2)
# 遍历文件列表
for j, file in enumerate(files2):
# 为每个文件创建一个独立的文件夹
folder = doc.Collection.Folders.CreateSubfolder(f"文件夹{j + 1}")
# 将文件添加到文件夹中
folder.AddFile(file)
# 将生成的PDF文件组合保存到指定的文件路径
output_file = "PDF文件包.pdf"
doc.SaveToFile(output_file)
# 关闭PdfDocument对象
doc.Close()
Python 识别一个 PDF 文件是否为文件包
您可以使用 PdfDocument.IsPortfolio 属性轻松判断一个 PDF 文档是否为文件包。以下是详细的步骤:
- 创建一个 PdfDocument 对象。
- 使用 PdfDocument.LoadFromFile() 方法加载一个 PDF 文档。
- 使用 PdfDocument.IsPortfolio 属性来判断文档是否为一个文件包。
- 将判断结果保存到 txt 文件中。
- Python
from spire.pdf.common import *
from spire.pdf import *
input_file = "PDF文件包.pdf"
# 创建一个PdfDocument对象
doc = PdfDocument()
# 从文件加载PDF文档
doc.LoadFromFile(input_file)
# 判断文档是否为文件包
if doc.IsPortfolio:
st = "加载的PDF是文件包"
else:
st = "加载的PDF不是文件包"
# 打开输出文件,以写入模式写入结果
output_file = "结果文档.txt"
with open(output_file, "w") as text_file:
text_file.write(st)
# 关闭PdfDocument对象
doc.Close()
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。