使用 apache-tika 和 python 从 PDF 中提取内联图像

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

我需要将 PDF 文档转换为 XML 或 JSON 格式,包括内嵌图像。

到目前为止,我可以使用 python-tika 库生成 XML。 要重现,请使用带有内联图像的测试 PDF 文档,并通过 python-tika 模块提取:

from tika import parser
xml_data = parser.from_file('test.pdf', xmlContent=True)
print(xml_data)

XML 输出包含指向“嵌入”图像的链接,如下所示:

<img src="embedded:image0.png" alt="image0.png" />

但是我不明白如何将图像嵌入到适当的部分,因为 XML 如下所示:

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="Compression Lossless" content="true" />
<meta name="Dimension PixelAspectRatio" content="1.0" />
<meta name="tiff:ImageLength" content="833" />
<meta name="height" content="833" />
<meta name="pHYs" content="pixelsPerUnitXAxis=2835, pixelsPerUnitYAxis=2835, unitSpecifier=meter" />
<meta name="tiff:ImageWidth" content="1177" />
<meta name="Chroma BlackIsZero" content="true" />
<meta name="resourceName" content="image0.png" />
<meta name="Dimension VerticalPixelSize" content="0.35273367" />
<meta name="Data BitsPerSample" content="8 8 8" />
<meta name="tiff:BitsPerSample" content="8 8 8" />
<meta name="width" content="1177" />
<meta name="PLTE PLTEEntry" content="index=0, red=255, green=255, blue=255" />
<meta name="PLTE PLTEEntry" content="index=1, red=254, green=254, blue=254" />
<meta name="PLTE PLTEEntry" content="index=2, red=253, green=253, blue=253" />
<meta name="PLTE PLTEEntry" content="index=3, red=251, green=251, blue=251" />
...

有人知道如何将嵌入的代码变成实际的图像吗?我想将图像保存到文件系统作为“image0.png”,“image1.tiff”等等......

python xml xml-parsing apache-tika
3个回答
0
投票

尝试导入tika的unpack功能。

from tika import unpack

image = unpack.from_file(file, serverEndpoint="http://localhost:9998")

响应应该有一个“附件”键。这是存储图像的地方。


0
投票

在发布时,该问题被认为是 Tika 中的错误。


0
投票

这仍然是一个错误还是已经解决了。我尝试使用最新版本的 tika 服务器 2.9.1 但仍然存在同样的问题。

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