python - 使用 pyPdf 在 Python 中裁剪页面

标签 python pdf pypdf

我正在编写一个脚本来从 PDF 中提取一些数据。 PDF 本身非常复杂,因为它有多个列。所以我发现我应该裁剪每一列并连接这些列以创建一个更适合使用 pyPdf 解析的新 PDF。这是我的代码:

for i in range(numPages):
    page1 = input1.getPage(i)
    page1.trimBox.lowerLeft=(0,550)
    page1.trimBox.upperRight = (480, 842)
    page1.cropBox.lowerLeft = (0, 550)
    page1.cropBox.upperRight = (480, 842)
    output.addPage(page1)
    page2= input2.getPage(i)
    print page1.mediaBox.getUpperRight_x(), page1.mediaBox.getUpperRight_y()
    page2.trimBox.lowerLeft=(0,280)
    page2.trimBox.upperRight = (480, 550)
    page2.cropBox.lowerLeft = (0, 280)
    page2.cropBox.upperRight = (480, 550)
    output.addPage(page2)
    page3 = input3.getPage(i)
    page3.trimBox.lowerLeft=(0,0)
    page3.trimBox.upperRight = (480, 280)
    page3.cropBox.lowerLeft = (0, 0)
    page3.cropBox.upperRight = (480, 280)
    output.addPage(page3)

outputStream = file("out.pdf", "wb")
output.write(outputStream)
outputStream.close()

然后,我将此 PDF 发送到 PHP 服务器来解析它并获取文本。没想到,这并没有什么帮助。事实证明,cropBox 正在更改 PDF 的可视部分。其他部分都在那里,但只是看不到。当我使用 PHP 处理新的 PDF 时,得到了相同的结果。我的问题是:有没有办法让cropBox真正裁剪框并忽略PDF页面的剩余部分?

最佳答案

我在 Python 中尝试了多个其他库,但它们没有帮助。后来我偶然发现了pdfBox事实证明这是一个非常有用的库。在文本提取方面比 PDFMiner 和 pyPdf 好得多。我可以使用具有高度和宽度的矩形的 x 和 y 位置提取文本。它唯一的缺点是我没有找到它的 Python 包装器,所以我必须用 Java 编写应用程序。

关于python - 使用 pyPdf 在 Python 中裁剪页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28253517/

相关文章:

python - 列表复制不起作用?

python - 在单独的线程中运行Panda3D

java - 使用休息服务在浏览器中显示 pdf

java - Swing 和 iText 字体渲染之间的差异

c# - iTextSharp 和 PdfTable 的问题

python-3.8 - Python3 : FileNotFoundError: [Errno 2] No such file or directory: 'FIRST_FILENAME.pdf'

python - 使用 Python 从 PDF 元数据中提取关键字

python - 对类似列表的对象进行乘积和求和的简单矢量化

python - 在for循环中将文件上传到gs存储桶

Python:四舍五入到最接近的 1/8%