pdf/a 是一种专为电子文档的长期归档和保存而设计的文档格式。它能保证文档的内容、结构和视觉外观随着时间的推移保持不变。通过将 pdf 文件转换为 pdf/a 格式,可以确保文档的长期可访问性,而不受软件、操作系统或未来技术进步的影响。相反,将 pdf/a 文件转换为标准 pdf 格式,可以更轻松地编辑、共享和协作文档,确保不同应用程序、设备和平台之间更好的兼容性。本文将介绍如何使用 spire.pdf for python 在 python 中实现 pdf 和 pdf/a 格式之间的相互转换。
安装 spire.pdf for python
本教程需要用到 spire.pdf for python 和 plum-dispatch v1.7.4。可以通过以下 pip 命令将它们轻松安装到 vs code 中。
pip install spire.pdf
如果您不清楚如何安装,请参考: 如何在 vs code 中安装 spire.pdf for python
python 将 pdf 转换为 pdf/a 或 pdf/x
spire.pdf for python 提供的 pdfstandardsconverter 类支持将 pdf 转换为各种 pdf/a 格式,包括 pdf/a-1a、2a、3a、1b、2b 和 3b。此外,它还支持将 pdf 转换为 pdf/x-1a:2001。具体步骤如下:
- 指定输入输出文件路径。
- 创建一个 pdfstandardsconverter 类的对象,并将输入文件路径作为参数传入。
- 使用 pdfstandardsconverter.topdfa1a() 方法将 pdf 文件转换为 pdf/a-1a 一致性文件。
- 使用 pdfstandardsconverter.topdfa1b() 方法将 pdf 文件转换为 pdf/a-1b 文件。
- 使用 pdfstandardsconverter.topdfa2a() 方法将 pdf 文件转换为 pdf/a-2a 文件。
- 使用 pdfstandardsconverter.topdfa2b() 方法将 pdf 文件转换为 pdf/a-2b 文件。
- 使用 pdfstandardsconverter.topdfa3a() 方法将 pdf 文件转换为 pdf/a-3a 文件。
- 使用 pdfstandardsconverter.topdfa3b() 方法将 pdf 文件转换为 pdf/a-3b 文件。
- 使用 pdfstandardsconverter.topdfx1a2001() 方法将 pdf 文件转换为 pdf/x-1a:2001 文件。
- python
from spire.pdf.common import *
from spire.pdf import *
inputfile = "示例文档.pdf"
outputfolder = "转换/"
# 创建pdfstandardsconverter类的对象
converter = pdfstandardsconverter(inputfile)
# 将pdf文件转换为pdfa1a
converter.topdfa1a(outputfolder "topdfa1a.pdf")
# 将pdf文件转换为pdfa1b
converter.topdfa1b(outputfolder "topdfa1b.pdf")
# 将pdf文件转换为pdfa2a
converter.topdfa2a(outputfolder "topdfa2a.pdf")
# 将pdf文件转换为pdfa2b
converter.topdfa2b(outputfolder "topdfa2b.pdf")
# 将pdf文件转换为pdfa3a
converter.topdfa3a(outputfolder "topdfa3a.pdf")
# 将pdf文件转换为pdfa3b
converter.topdfa3b(outputfolder "topdfa3b.pdf")
# 将pdf文件转换为pdf/x-1a:2001
converter.topdfx1a2001(outputfolder "topdfx1a.pdf")
python 将 pdf/a 转换为 pdf
要将 pdf/a 文件转换回标准pdf文件格式,需要创建一个新的标准 pdf 文件,然后将 pdf/a 文件的页面内容绘制到新创建的 pdf 文件中。具体步骤如下:
- 创建一个 pdfdocument 类的对象。
- 使用 pdfdocument.loadfromfile() 方法加载 pdf/a 文件。
- 创建一个 pdfnewdocument 对象,并将其压缩级别设置为 "none"。
- 遍历原始 pdf/a 文件中的页面。
- 使用 pdfdocumentbase.pages.add() 方法为新创建的 pdf 添加页面。
- 使用 pdfpagebase.createtemplate.draw() 方法将原始 pdf/a 文件的页面内容绘制到新创建 pdf 的相应页面中。
- 创建一个 stream 对象,然后使用 pdfnewdocument.save() 方法将新创建 pdf 文件保存到流中。
- python
from spire.pdf.common import *
from spire.pdf import *
inputfile = "转换/topdfa1a.pdf"
outputfile = "pdfa转pdf.pdf"
# 创建pdfdocument对象
doc = pdfdocument()
# 加载pdf文件
doc.loadfromfile(inputfile)
# 创建一个新的标准pdf文件
newdoc = pdfnewdocument()
newdoc.compressionlevel = pdfcompressionlevel.none
# 在新创建的pdf中添加页面,并将已加载pdf的页面内容绘制到新创建pdf的相应页面上
for i in range(doc.pages.count):
page = doc.pages.get_item(i)
size = page.size
p = newdoc.pages.add(size, pdfmargins(0.0))
page.createtemplate().draw(p, 0.0, 0.0)
# 保存新创建的pdf文件
filestream = stream(outputfile)
newdoc.save(filestream)
filestream.close()
newdoc.close(true)
申请临时 license
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用javascript。获取有效期 30 天的临时许可证。