Я использую Python (3.8.1) и tabula-py (2.1.0) (https://tabula-py.readthedocs.io/en/latest/tabula.html#tabula.io.build_options), чтобы извлечь таблицы из текстового PDF-файла (ежемесячная оплата AWS отчет).
Ниже показан образец PDF-файла (нижняя часть 1-й страницы и верхняя часть 2-й страницы).
Сценарий Python показан ниже:
from tabula import read_pdf
from tabulate import tabulate
df = read_pdf(
"my_report.pdf",
output_format="dataframe",
multiple_tables=True,
pages="all",
silent=True,
# TODO: area = (x_left, x_right, y_left, y_right) # ?
)
print(tabulate(df))
Что приводит к следующему результату:
--- --------------------------------------------------------------------------- --------------------- ---------
0 region nan nan
1 AWS CloudTrail APS2-PaidEventsRecorded nan $3.70
2 0.00002 per paid event recorded in Asia Pacific (Sydney) 184,961.000 Events $3.70
3 region nan nan
4 Asia Pacific (Tokyo) nan $3.20
Я думаю, что параметр области должен быть правильно установлен, поскольку верхние и крайние левые данные иногда опускаются. Так ли это, и если да, то как найти правильную область всех табличных данных в файле PDF?
Заранее спасибо.
table
.tabula-py
необходимо сделать вывод о существовании таблицы просто из макета. И нет простого способа узнать из PDF, что таблица на странице 2 является продолжением таблицы на странице 1, если только она не имеет повторяющихся заголовков. Возможно, вы могли бы сообщить об этом как о проблеме на github.com/chezou/tabula-py/issues а> . - person BoarGules   schedule 27.03.2020