Python中如何处理PDF文件的问题

现在情况是这样,我在处理 pdf 文件的时候遇到了一个水印 对应读取的一个元素是 FormXob.86cdf15f1994e2f2b7032e461

我现在想办法处理

把得到的这个元素给排除掉放进新的 pdf 里面 如何解决呢?

我用的是 Py2PDF

读取的一页元素如下,里面包含了 Formxob {'/Parent': IndirectObject(1, 0), '/Contents': IndirectObject(22, 0), '/Tabs': '/S', '/Resources': {'/XObject': {'/Image5': IndirectObject(23, 0), '/FormXob.86cdf15f1994e2f2b7032e461afd4234': IndirectObject(25, 0)}, '/ExtGState': {'/Xi0': IndirectObject(26, 0), '/gRLs0': {'/ca': 0.13}}, '/Font': {'/F1renamed': {'/Encoding': '/WinAnsiEncoding', '/Type': '/Font', '/Name': '/F1', '/BaseFont': '/Helvetica', '/Subtype': '/Type1'}, '/F1': IndirectObject(27, 0), '/Xi2': IndirectObject(35, 0), '/Xi1': IndirectObject(38, 0)}, '/ProcSet': ['/Text', '/ImageC', '/ImageB', '/PDF', '/ImageI']}, '/Group': {'/Type': '/Group', '/S': '/Transparency', '/CS': '/DeviceRGB'}, '/MediaBox': [0, 0, 720, 405], '/Type': '/Page', '/StructParents': 0}

请问现在如何解决呢?


Python中如何处理PDF文件的问题

2 回复

在Python里处理PDF,我一般用PyPDF2和pdfplumber。PyPDF2适合基础操作,pdfplumber能提取表格和文字。

比如用PyPDF2合并PDF:

from PyPDF2 import PdfMerger

merger = PdfMerger()
merger.append("file1.pdf")
merger.append("file2.pdf")
merger.write("merged.pdf")
merger.close()

用pdfplumber提取表格:

import pdfplumber

with pdfplumber.open("data.pdf") as pdf:
    for page in pdf.pages:
        table = page.extract_table()
        if table:
            for row in table:
                print(row)

要创建PDF就用reportlab:

from reportlab.lib.pagesizes import letter
from reportlab.pdfgen import canvas

c = canvas.Canvas("hello.pdf", pagesize=letter)
c.drawString(100, 750, "Hello PDF")
c.save()

简单说就是:PyPDF2处理页面,pdfplumber提取内容,reportlab创建文件。


getpage 以及 mergePage,水印也是一页叠加的 page,可以看看是否有 deleltepage 的操作。

回到顶部