【问题标题】:Python: Merging two PDF/A or converting regular PDF into PDF/APython:合并两个 PDF/A 或将常规 PDF 转换为 PDF/A
【发布时间】:2021-11-26 10:43:57
【问题描述】:

我希望将两个 PDF 1/A 文档合并为一个 PDF 1/A,这可以使用 Python 实现吗?我一直找不到支持此功能的库。 PikePDF 可以合并它们,使结果符合 PDF 1/A,但它不是有效的 PDF 1/A 文档(最终为 1.3)。

另一种选择是将 PikePDF 合并结果转换为 PDF 1/A,但我找不到能够执行转换的 Python 库。

有什么想法吗?

【问题讨论】:

  • @KJ Pikepdf 确实声明它能够保持与 PDF/A 的一致性,但肯定还有其他差异。或者是否可以简单地更改标签并成为有效的 PDF/A ?

标签: python pdf


【解决方案1】:

您可以使用 pypdf2 并执行类似的操作来合并 pdf

import os, logging
from PyPDF2 import PdfFileMerger

def merge_pdf(self):
    try:
        merger = PdfFileMerger()
        for files in PDF_FILES:
            merger.append(os.path.join(PDF_BASE_PATH,files))
        merger.write(os.path.join(PDF_BASE_PATH,'merged.pdf'))
        merger.close()
    except Exception as e:
        response = str(e)
        logging.info(f'Merge Files : {response}')
        raise e

【讨论】:

    【解决方案2】:

    您是否尝试过使用PyPdf2 模块?

    试试下面的代码:

    from PyPDF2 import PdfFileMerger
    
    pdfs = ['file1.pdf', 'file2.pdf', 'file3.pdf']
    
    merger = PdfFileMerger()
    
    for pdf in pdfs:
        merger.append(pdf)
    
    merger.write("result.pdf")
    merger.close()
    

    【讨论】:

    • Pikepdf 据说是 PyPDF2 的更新版本,但我刚刚尝试过,结果与 Pikepdf 相同。根据在线 PDF/A 验证工具,结果为 1.3,不是有效的 PDF/A。
    • 可能在合并完成后尝试将 1.3 转换为 PDF/A。我找到了一些可能对你有帮助的代码。 link to code。以下链接将引导您访问使用 PDFTron SDK 以编程方式将通用 PDF 文档转换为符合 ISO 标准、VeraPDF 有效 PDF/A 文件或验证 PDF/A 合规性的代码。
    • 是的,PDFTron 是谷歌搜索时弹出的第一个结果。尽管这似乎是唯一相关的结果,但不幸的是它是一个商业图书馆;肯定有一个开源的替代品吗?我假设这种转换是一个相对常见的用例,我很惊讶没有其他方法可以完成任务。
    猜你喜欢
    • 2016-03-17
    • 2014-05-26
    • 1970-01-01
    • 2016-06-15
    • 1970-01-01
    • 1970-01-01
    • 2010-12-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多