Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 在pdfminer obj中编辑BBOX坐标_Python 3.x_Pdf_Pdfminer - Fatal编程技术网

Python 3.x 在pdfminer obj中编辑BBOX坐标

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

我想编辑一个pdfminer对象(数据框中的对象列表)。更改后,将pdf文件与文本一起保存,最终将移动到另一个位置。下面,我给出了从一个示例pdf文件生成数据帧的代码

有时我把物体放在错误的地方,我不知道如何确定它们的位置。我试图剪切pdf并将其转换为jpg,然后将jpg移动到正确的位置,但我失去了图像质量。也许唯一的方法是编辑这些对象并尝试更改参数

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