是否可以使用Python将pdf图表转换为excel?

问题描述 投票:0回答:1

首先,到目前为止我似乎找不到任何相关代码。有很多将 Excel 数据转换为 pdf 的方法,但反之则不然。因此,对于缺少代码表示歉意。另外,我不是 pdf 专家,所以这可能是不可能的。

我的问题是,是否可以获取包含图表的 pdf 并将该图表转换回 Excel。具体来说就是数据。以下面这张图表为例,该图表包含在贝莱德英国基金的情况说明书中。可以使用 Python 将其转换回 Excel 吗?与日期匹配的数据点,即时间序列。

https://www.blackrock.com/uk/literature/fact-sheet/blackrock-uk-fund-class-a-accu-gbp-factsheet-gb0005773774-gb-en-individual.pdf

python excel pdf
1个回答
0
投票

查看PDF内部,您选择的图形不是图像,而是一系列PDF绘制命令。从技术上讲,信息是存在的,但它存储在抽象上下文中,使得可用性非常低,无需进行大量工作。这是一瞥:

import pikepdf

doc = pikepdf.Pdf.open('blackrock.pdf')
page = doc.pages[1]
print(page.resources.XObject.Xf5.read_bytes().decode()[:217])

这将给出以下输出,这是 PDF 渲染器用于绘制图形的一系列命令。

q
0 151.2 m
0 0 l
542.23 0 l
542.23 151.2 l
h
W
n
1 w
2 J
0 j
10 M
[]0 d
q
0 151.2 m
541.51 151.2 l
541.51 0.19901 l
0 0.19901 l
0 151.2 l
h
W
n
0.86286 w
1 j
0.75294 0.75294 0.75294 RG
38.93 61.4 m
534.3 61.4 l
S
Q
q

看着他们,我们从以下开始:

  • q - 保存当前图形状态
  • (x, y) m - 将光标移动到位置 x, y 以开始新的子路径绘制
  • (x, y) l - 从当前位置向 (x, y) 添加一条直线
  • (x, y) l - 同样的事情
  • (x, y) l - 同样的事情,似乎正在绘制外框
  • h - 关闭子路径
  • W - 修改当前剪切路径
  • n - 结束路径对象
  • w、J、j、M、d - 设置线宽、端头样式、连接样式、斜接和破折号
  • q - 保存图形状态
  • 等等...
  • (r, g, b) RG - 将颜色更改为 r,g,b
  • S - 绘制描边路径
  • Q - 从图形堆栈恢复最新的图形状态

通过解析此信息,您可以将图像中每条线的相对运动提取为子像素运动数组。但是,您仍然需要获取每条线的最终值来调整价格的变动。

可能吗?是的。值得你花时间吗?好吧,这取决于你。

© www.soinside.com 2019 - 2024. All rights reserved.