如何从PDF中丢弃裁剪的文本

时间:2019-04-21 21:17:09

标签: python pdf

我需要裁剪pdf文件以提取该pdf文件中的某些特定信息。有没有办法我可以裁切pdf文件,只保留裁切区域内的文本,而丢弃裁切区域之外的所有其他文本?

我尝试使用pyPdf通过以下代码对其进行裁剪。

from pyPdf import PdfFileWriter, PdfFileReader

with open("in.pdf", "rb") as in_f:
    input1 = PdfFileReader(in_f)
    output = PdfFileWriter()

    numPages = input1.getNumPages()
    print "document has %s pages." % numPages

    for i in range(numPages):
        page = input1.getPage(i)
        print page.mediaBox.getUpperRight_x(), page.mediaBox.getUpperRight_y()
        page.trimBox.lowerLeft = (25, 25)
        page.trimBox.upperRight = (225, 225)
        page.cropBox.lowerLeft = (50, 50)
        page.cropBox.upperRight = (200, 200)
        output.addPage(page)

    with open("out.pdf", "wb") as out_f:
        output.write(out_f)

pdf本身会被裁剪,但是未裁剪的pdf的所有文本仍会保留。如果我复制新PDF的所有内容,那么即使是裁剪(不可见)的文本也会被复制。

1 个答案:

答案 0 :(得分:0)

在我处理了您的PDF并进行裁剪后,我发现无法裁剪并删除invisible数据。

基本上,裁剪是在PDF中添加/CropBox [ 50 50 200 200 ]元素,但实际数据仍保留在PDF中。

提示:尝试提取数据时不要裁剪,也可以使用pdfminerghostscript之类的库,或者尝试PyPDF提取文本或获取上下文框。