Дата и время публикации:
Проблема и решениe
1. Проблема
Заключается в отсутствие прямых методов для вставки содержимого ячеек таблицы из файла PDF, как проводили ранее с из LibreOffice Writer в Calc, что и натолкнула явтора на поиски иных путей решения данной проблемы за пределам офисного набора LibreOffice. Результат попытки прямой вставки которого показан на рисунке 1.1
Рисунок 1.1
Одним из таких решением является проект tabula, который позволяет распознавать табличные данные в файлах PDF и экспортировать их в электронные таблицы LibreOffice c использованием универсального текстового формата CVS и сохранением структуры таблицы.
2. Решение
2.1 Загружаем файл tabula-jar.zip cо страницы проекта, раскрываем командой unzip, как показано в дампе 2.1
Дамп 2.1
user@home:~$ wget \ > https://github.com/tabulapdf/tabula/releases/download/v1.2.1/tabula-jar-1.2.1.zip && \ > unzip tabula-jar-1.2.1.zip … Длина: 36799860 (35M) [application/octet-stream] Сохранение в: «tabula-jar-1.2.1.zip» tabula-jar-1.2.1.zip 100%[==================================================================================>] 35,09M 2,06MB/s за 58s 2020-04-27 14:12:27 (623 KB/s) - «tabula-jar-1.2.1.zip» сохранён [36799860/36799860] Archive: tabula-jar-1.2.1.zip creating: tabula/ inflating: tabula/AUTHORS.txt inflating: tabula/LICENSE.txt inflating: tabula/README.txt inflating: tabula/tabula.jar
user@home:~$ sudo apt install openjdk-11-jdk unzip
В данном примере приводится ссылка на файл tabula-jar.zip для версии 1.2.1, поэтому соотносите указанный путь https://github.com/tabulapdf/tabula/releases/download/... с текущей версией на странице проекта .
2.2 Затем, из распакованной директории tabula запускаем сей чудесный продукт, как показано в дампе 2.2
Дамп 2.1
user@home:~/.tabula$ java -Dfile.encoding=utf-8 -Xms256M -Xmx1024M -jar tabula/tabula.jar ====================================================== Server now listening at: http://127.0.0.1:8080 You may now open a web browser to the above URL. When you're done using the Tabula interface, you may return to this window and press "Control-C" to close it. ====================================================== 2020-04-27 14:15:57.281:INFO:oejsh.ContextHandler:main: Started o.e.j.w.WebAppContext@3108bc{/,file:/tmp/jetty-0.0.0.0-8080-tabula.jar-_-any-6153653854291570071.dir/webapp/,AVAILABLE}{file:/home/user/.tabula/tabula/tabula.jar} 2020-04-27 14:15:57.281:WARN:oejsh.RequestLogHandler:main: !RequestLog 2020-04-27 14:15:57.304:INFO:oejs.ServerConnector:main: Started ServerConnector@27b5d803{HTTP/1.1}{0.0.0.0:8080} 2020-04-27 14:15:57.305:INFO:oejs.Server:main: Started @7783ms
Запуск которого должен заканчиваться подобным образом,как показано в дампе 2.2
2.2 В навигационной строке предпочитаемого браузера WEB http://127.0.0.1:8080/. При этом для автоматического запуска браузера, в аргументах запуска tabula/tabula.jar можно указать опцию Dtabula.openBrowser=true . Результат приведен на рисунке 2.1
Рисунок 2.1
2.3 Импортируем файл PDF нажатием кнопки "Browse" и загружаем файл в строку поиска, как показано на рисунке 2.2
Рисунок 2.2
По завершении процедуры ВВОДА импортируемого файла PDF нажать кнопку "Import", в результате отработки которой будет произведен её запуск, как показано на рисунке 2.3
Рисунок 2.3
В результате должны иметь следующую картинку в браузере, как показано на рисунке 2.4
Рисунок 2.4
В котором, с помощью удерживания левой кнопки мыши, выделена область таблицы, содержимое которой будет извлекаться позднее.
2.4 Для повторения выделения области таблицы на других страницах импортируемого файла PDF следут нажать кнопку "Repeat this Selection".
Рисунок 2.5
Как показано на рисунке 2.5, отмену выбранных областей табличных данных можно произвести путем нажатия на обведенный красным крестик, а для извлечения выделенных табличных данных нажимаем на зеленую большую кнопку "Preview & Export Extracted Data". В результате будет отображена форма просмотра табличных данных "Preview of Extracted Tabular Data", как показано на рисунке 2.6
Рисунок 2.6
2.5 Процедуру экспорта завершаем нажатием кнопки "Export", в результате чего извлекаемые данные окажутся в файле CSV, который можно открыть в электронных таблицах, например в LibreOffice Calc, как показано на рисунке 2.7
Рисунок 2.7
2.7 В диалоге "Text Import" устанавливаем символом разделителя — запятую (,), а кодировку — UTF-8, как показано на рисунке 2.7
Рисунок 2.8
2.8 Нажимаем кнопку "Ok" и наслаждаемся импортированными табличными данными из таблицы файла PDF в офисном наборе LibreOffice Calc, как показано на рисунке 2.9
Рисунок 2.9
3. Библиография