Azqxws 2022-01-11 14:04 采纳率: 0%
浏览 46
已结题

python pdf 矢量提取

问题遇到的现象和发生背景

提取PDF中的元素,需要元素在PDF的顺序号、位置信息及所属的Object

问题相关代码,请勿粘贴截图
pdf_name = r'C:\Users\LH\Desktop\tt06.pdf'
doc = fitz.open(pdf_name)
page = doc[0]

# 所有object
for i in range(1, doc.xref_length()):
    print(doc.xref_object(i, compressed=False))
    print("obj*-*"*20)
content = page.read_contents() # 文件流

运行结果及报错内容

目前没有办法将一个个的元素分开

b'\n0.06 0 0 0.06 14 48 cm\n\nq\n0 0 m\n4075 0 l\n4075 11593 l\n0 11593 l\n0 0 l W n\n0 0 0 RG\n0 0 0 rg\n /DeviceGray CS\n/GT255 gs\n12 w\r\n1 j\r\n1 J /OC /oc1 BDC\n\n2054 9155 m\n1110 7917 l\nS\n2565 8202 m\n2331 8102 l\n2565 8002 l\nS\n2565 7735 m\n2331 7735 l\nS\n2515 7735 m\n2548 7768 l\n2565 7802 l\n2565 7852 l\n2548 7885 l\n2515 7918 l\n2465 7935 l\n2431 7935 l\n2381 7918 l\n2348 7885 l\n2331 7852 l\n2331 7802 l\n2348 7768 l\n2381 7735 l\nS\n2331 7618 m\n2565 7618 l\nS\n2465 7618 m\n2515 7602 l\n2548 7568 l\n2565 7535 l\n2565 7485 l\nS\n2565 7385 m\n2331 7285 l\n2565 7185 l\nS\n2331 7285 m\n2231 7335 l\n2215 7352 l\n2215 7402 l\nS\n3414 7860 m\n2527 6490 l\nS\n1783 6762 m\n1783 6788 l\n1770 6814 l\n1731 6827 l\n1509 6827 l\nS\n1692 6866 m\n1692 6775 l\nS\n1770 6709 m\n1757 6696 l\n1770 6683 l\n1783 6696 l\n1770 6709 l\nS\n1692 6696 m\n1509 6696 l\nS\n1509 6605 m\n1692 6605 l\nS\n1640 6605 m\n1679 6566 l\n1692 6539 l\n1692 6500 l\n1679 6474 l\n1640 6461 l\n1509 6461 l\nS\n1613 6356 m\n1613 6200 l\n1640 6200 l\n1666 6213 l\n1679 6226 l\n1692 6252 l\n1692 6291 l\n1679 6317 l\n1653 6343 l\n1613 6356 l\n1587 6356 l\n1548 6343 l\n1522 6317 l\n1509 6291 l\n1509 6252 l\n1522 6226 l\n1548 6200 l\nS EMC\nQ'

我的解答思路和尝试过的方法

通过查看PDF协议标准解析PDF,PDF协议标准太多,没有办法在短时间找到解析思路

我想要达到的结果

将元素分开并标明元素属性(所属object、顺序号、颜色等)

  • 写回答

1条回答 默认 最新

  • 关注

    或者你可以用正则表达式提取需要的内容

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 1月12日
  • 创建了问题 1月11日

悬赏问题

  • ¥15 VESTA绘图原子颜色显示异常
  • ¥15 天翼云搭建多ip l2tp
  • ¥30 matlab求解刃位错方程
  • ¥15 python实现CAD识图
  • ¥15 如何实现在renpy中创建并应用不同大小尺寸对话框?
  • ¥15 table表格有一列是固定列 滑动到最下面时 固定的那一列有几行没显示出来
  • ¥20 单细胞数据注释时报错
  • ¥20 dify工作流分析sql查询结果
  • ¥15 vscode编译ros找不到头文件,cmake.list文件出问题,如何解决?(语言-c++|操作系统-linux)
  • ¥15 通过AT指令控制esp8266发送信息