Код: Выделить всё
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
Мне нужны следующие данные: «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 в XML, но я не могу найти ни одного случая, когда данные из PDF отсутствуют в XML.
Подробнее здесь: https://stackoverflow.com/questions/785 ... pdf-to-xml