我需要裁剪一个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的所有内容,甚至裁剪(不可见)的文本也会被复制。
发布于 2019-04-23 16:29:16
在我玩了你的PDF和裁剪后,我发现这是不可能的裁剪和删除invisible
数据。
基本上,裁剪所做的就是将/CropBox [ 50 50 200 200 ]
元素添加到PDF中,但实际数据仍然保留在PDF中。
提示:尝试在不裁剪的情况下提取数据,也可以使用pdfminer
、ghostscript
之类的库,或者尝试使用PyPDF
提取文本或获取上下文框。
https://stackoverflow.com/questions/55786826
复制相似问题