Потеря данных при использовании PDFQuery для преобразования PDF в XMLPython

Программы на Python
Anonymous
Потеря данных при использовании PDFQuery для преобразования PDF в XML

Сообщение Anonymous »

Я пытаюсь преобразовать файл PDF в файл XML с помощью PDFQuery, а затем извлечь из него данные, используя координаты bbox. Однако в преобразованном XML-файле часто отсутствуют некоторые данные, присутствующие в PDF.

Код: Выделить всё

import pdfquery

def loader(x):

pdf=pdfquery.PDFQuery("holdlines1.pdf")
pdf.load(x)
l1,l2,l3,l4,l5,l6,l7=([] for x in range(7))

# sheet="1888.8, 42.229, 1911.238, 58.129"
# line="1544.88, 49.873, 1586.476, 62.548 // 1537.2, 49.873, 1592.954, 62.548"
# plant="1654.32, 42.229, 1676.758, 58.129"
# indexn="1710.48, 42.151, 1719.247, 59.551"
# drawing="1770.24, 42.229, 1836.362, 58.129"
# revno="1941.84, 40.209, 1963.871, 59.979"

for i in pdf.pq("LTPage"):

for j in pdf.pq("LTTextLineHorizontal"):

print((pdf.pq(j).text()))
if "HOLD" in (pdf.pq(j).text()):
l1.append(pdf.pq('LTTextLineHorizontal:in_bbox("1888.8, 42.229, 1911.238, 58.129")').text())
l2.append(pdf.pq(j).text())
l3.append(pdf.pq('LTTextLineHorizontal:in_bbox("1544.88, 49.873, 1586.476, 62.548")').text())
l4.append(pdf.pq('LTTextLineHorizontal:in_bbox("1654.32, 42.229, 1676.758, 58.129")').text())
l5.append(pdf.pq('LTTextLineHorizontal:in_bbox("1710.48, 42.151, 1719.247, 59.551")').text())
l6.append(pdf.pq('LTTextLineHorizontal:in_bbox("1770.24, 42.229, 1836.362, 58.129")').text())
l7.append(pdf.pq('LTTextLineHorizontal:in_bbox("1941.84, 40.209, 1963.871, 59.979")').text())

return l1,l2,l3,l4,l5,l6,l7
Это функция, которую я использую. Аргумент x принимает номер страницы.
Мне нужны следующие данные: «HOLD — VD — MEP», «HOLD — STR — CV» и другие варианты, но в основном он всегда содержит «HOLD».
Код отлично работает с данными, присутствующими в XML-файле, но сам XML-файл пропускает часть данных, присутствующих в PDF-файле.
Здесь это код, который я использую для преобразования PDF в XML и записи его в файл для проверки:

Код: Выделить всё

import pdfquery

pdf=pdfquery.PDFQuery("holdlines1.pdf")
pdf.load()

pdf.tree.write("holdlines1.xml",pretty_print=True)
Снимок экрана части PDF-файла, с которым я работаю, для справки:
Изображение

Я не понимаю почему отсутствуют только некоторые данные, а большая часть данных преобразуется нормально. Есть много вопросов о преобразовании из PDF в XML, но я не могу найти ни одного случая, когда данные из PDF отсутствуют в XML.

Подробнее здесь: https://stackoverflow.com/questions/785 ... pdf-to-xml

Вернуться в «Python»