Python 3.x 在pdfminer obj中编辑BBOX坐标
我想编辑一个pdfminer对象(数据框中的对象列表)。更改后,将pdf文件与文本一起保存,最终将移动到另一个位置。下面,我给出了从一个示例pdf文件生成数据帧的代码 有时我把物体放在错误的地方,我不知道如何确定它们的位置。我试图剪切pdf并将其转换为jpg,然后将jpg移动到正确的位置,但我失去了图像质量。也许唯一的方法是编辑这些对象并尝试更改参数Python 3.x 在pdfminer obj中编辑BBOX坐标,python-3.x,pdf,pdfminer,Python 3.x,Pdf,Pdfminer,我想编辑一个pdfminer对象(数据框中的对象列表)。更改后,将pdf文件与文本一起保存,最终将移动到另一个位置。下面,我给出了从一个示例pdf文件生成数据帧的代码 有时我把物体放在错误的地方,我不知道如何确定它们的位置。我试图剪切pdf并将其转换为jpg,然后将jpg移动到正确的位置,但我失去了图像质量。也许唯一的方法是编辑这些对象并尝试更改参数 rsrcmgr = PDFResourceManager() device = PDFDevice(rsrcmgr) laparams = LAP
rsrcmgr = PDFResourceManager()
device = PDFDevice(rsrcmgr)
laparams = LAParams()
device = PDFPageAggregator(rsrcmgr, laparams=laparams)
interpreter = PDFPageInterpreter(rsrcmgr, device)
def parse_page(lt_objs, no_page):
df = pd.DataFrame()
for obj in lt_objs:
if isinstance(obj, pdfminer.layout.LTTextBoxHorizontal):
df = df.append(
{
"x1": obj.bbox[0],
"y1": obj.bbox[1],
"x2": obj.bbox[2],
"y2": obj.bbox[3],
"content": obj.get_text().replace("\n", ""),
"page": int(no_page) + 1,
},
ignore_index=True,
)
elif isinstance(obj, pdfminer.layout.LTFigure):
continue
return df
with open('./test2.pdf', "rb") as f:
document = PDFDocument(PDFParser(f))
for index, page in enumerate(PDFPage.create_pages(document)):
interpreter.process_page(page)
df = parse_page(device.get_result()._objs, index)
break
df['content']='text' # just hide ;)
df['page'] = df['page'].astype(int)
df