У меня есть XML-файл, который содержит некоторую информацию о ограничительной рамке из PDF-файла:
<page bbox="0.000,0.000,612.000,792.000" rotate="0">
<textbox bbox="21.600,733.350,65.644,751.641">
<textline bbox="21.600,733.350,65.644,751.641">
<text bbox="21.600,733.350,30.258,751.641">L</text>
<text bbox="30.258,733.350,37.486,751.641">i</text>
<text bbox="37.486,733.350,44.714,751.641">n</text>
<text bbox="44.714,733.350,48.315,751.641">e</text>
<text bbox="48.315,733.350,55.543,751.641">#</text>
<text bbox="55.543,733.350,62.043,751.641">1</text>
</textline>
</textbox>
<textbox bbox="21.600,714.720,140.775,729.494">
<textline bbox="21.600,714.720,140.775,729.494">
<text bbox="27.438,714.720,29.769,729.494"ncolour="1"size="14.774">L</text>
<text bbox="21.600,714.720,27.438,729.494"ncolour="1"size="14.774">i</text>
<text bbox="29.769,714.720,35.019,729.494"ncolour="1"size="14.774">n</text>
<text bbox="35.019,714.720,40.857,729.494"ncolour="1"size="14.774">e</text>
<text bbox="40.857,714.720,43.188,729.494"ncolour="1"size="14.774">#</text>
<text bbox="43.188,714.720,49.026,729.494"ncolour="1"size="14.774">2</text>
</textline>
</textbox>
<textbox bbox="223.560,717.899,457.560,754.481">
<textline bbox="223.560,717.899,457.560,754.481">
<text font="EAAAAA+ArialUnicodeMS" bbox="223.560,717.899,242.332,754.481" colourspace="DeviceGray" ncolour="0.098" size="36.582">L</text>
<text font="EAAAAA+ArialUnicodeMS" bbox="242.332,717.899,248.104,754.481" colourspace="DeviceGray" ncolour="0.098" size="36.582">i</text>
<text font="EAAAAA+ArialUnicodeMS" bbox="248.104,717.899,261.104,754.481" colourspace="DeviceGray" ncolour="0.098" size="36.582">n</text>
<text font="EAAAAA+ArialUnicodeMS" bbox="261.104,717.899,275.560,754.481" colourspace="DeviceGray" ncolour="0.098" size="36.582">e</text>
<text font="EAAAAA+ArialUnicodeMS" bbox="275.560,717.899,281.332,754.481" colourspace="DeviceGray" ncolour="0.098" size="36.582">#</text>
<text font="EAAAAA+ArialUnicodeMS" bbox="281.332,717.899,295.788,754.481" colourspace="DeviceGray" ncolour="0.098" size="36.582">1</text>
</textline>
</textbox>
</page>
Выше просто разобрать
Line #1
Line #2
Line #1
Я пытаюсь разобрать файл PDF в текст и сохранить форматирование.
Для этого, я думаю, мне нужно использовать информацию bbox
, чтобы каким-то образом вычислить позицию на странице (на какой строке # находится тег textline
).
У меня есть ширина и высота страницы. В данном случае это 612.000,792.000
Может кто-нибудь направить меня в направлении, как разобрать это. До сих пор я мог только анализировать каждую строку и добавлять каждый символ для написания каждого слова, но тогда каждый <textbox>
рассматривается как отдельная строка:
tree = ET.parse(path_to_xml_file)
root = tree.getroot()
lines = {}
textboxes = root.findall('./page/textbox')
for textbox in textboxes:
for line in words:
for char in line.text:
[...]
Как мне проанализировать информацию bbox
и вычислить номер строки, на которой находится тег <textline>
?