Чтение файлов PDF из 1С (Windows, Unix, macOS)

18.11.24

Интеграция - Внешние источники данных

Насколько мне известно, у платформы 1С нет встроенных средств чтения на лету файлов PDF для их последующего анализа, и приходится использовать внешние инструменты. Об одном из таких вариантов и пойдет речь. Update 17/11/2024: реализовано преобразование файлов PDF через прокси приложение Java c использованием библиотек Apache PDF и Aspose PDF.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Чтение файлов PDF из 1С (Windows, Unix, macOS)
.epf 122,82Kb ver:1.0
157 3 000 руб. Купить
Java веб-приложение Pdf в Text
.war 99,63Mb
11 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

   Мои попытки прочитать файл PDF из 1С начались с поисков встроенных инструментов 1С, ведь умеет же ТабличныйДокумент уже читать файлы XLS на лету и даже где-то в просторах гугл поиска были ссылки бывалых на то, что такое вроде как реализовано в 1С:Документооборот, но вроде так же на какой-то внешней компоненте. Разобраться на тот момент как это работает в типовой не получилось. Буду рад комментариям с замечаниями и примерами из этой конфигурации.

   После нескольких попыток мой выбор благодаря статье //infostart.ru/public/723898/ остановился на бесплатной, открытой, но главное простой консольной утилите PDFtoText, авторам статьи и продукта огромный respect https://www.xpdfreader.com/pdftotext-man.html

   Итак, приступим. Скачиваем набор утилит с указанного выше сайта и получаем файл вида xpdf-tools-win-4.01.01.zip. Из него нам нужно взять утилиту pdftotext.exe, предварительно выбрав её разрядности 32 или 64bit. Выбирайте такую же как у Вас стоит платформа 1С-ка. После этого помещаем файл утилиты в макет внешней обработки типа ДвоичныеДанные с именем в моем примере pdftotext.

   Чтобы не нарушить никаких авторских прав в приложенной к статье обработке макет с таким именем пустой, в него надо загрузить утилиту по описанным выше действиям. Дальше обычная работа с запуском приложений из 1С. Возможно, что Вам придется поиграться в строке запуска с параметрами утилиты и конечно написать свой парсер текстового документа.

 
Программная реализация конвертации PDF

    Примеры будут работать в любой конфигурации на УФ, где есть общие модули СтроковыеФункцииКлиентСервер, ОбщегоНазначения и версияБСП не ниже 2.2.1.4. Если нет таких общих модулей, то надергайте из УТ11 или КА2 в модуль объекта обработки и замените по тексту. Тестировал на платформах версий 8.3.11 и 8.3.13.

New update from 17/11/2024 - преобразование через Java приложение. Работает на любой операционной системе Windows, Unix, macOS или почти везде, где возможно установить Java.

Для работы через Java приложение нужно выполнить описанные далее действия и в обработке поставить галочку: PDF через Java. Если Вам не нужен дополнительный функционал через Java, то дальше можно не читать, файл приложения Java Вам также качать не нужно.

Обзор решения через Java

Pdf2Txt — это веб-приложение на Java, которое принимает PDF-файлы и преобразует их в текст.

  • Для работы через Apache PDF в коде задается тип 1. 
  • Для преобразования с использованием Aspose PDF устанавливается тип 3.

При использовании Apache PDF предусмотрен параметр запроса для разделения данных в строке. По умолчанию в коде обработки задан разделитель "|".

Требования для Java

Для работы с Java приложением требуется установленная Java версии 17 или выше. Проверить наличие и версию Java на вашем компьютере можно с помощью команды:

java -version

Если Java не установлена, необходимо её установить, следуя официальной документации для вашей операционной системы.

Запуск приложения Java

После того как убедились, что Java установлена, запустите приложение Pdf2Txt в виде отдельного веб-сервера. Для этого выполните следующую команду в командной строке:

java -jar Полный_Путь_К_Файлу/Pdf2Txt.war --server.port=8080
  • Полный_Путь_К_Файлу — полный путь к файлу Pdf2Txt.war.
  • 8080 — номер порта, на котором будет запущено приложение. При необходимости можно указать другой порт, убедившись, что он свободен.

Примечание: Если порт изменяется, в параметрах вызова сервера прокси Java в коде обработки 1С также нужно указать новый порт.

Проверка готовности Java приложения
После запуска приложения откройте веб-браузер и введите адрес:

http://localhost:8080/

Если приложение работает корректно, вы увидите сообщение:

Hello, I am 'Pdf2Txt' and working... "Текущая_Дата_Время_Компьютера"

Дополнительная информация о Java приложении

  • War-файл приложения можно также развернуть на сервере Tomcat.
  • Приложение Pdf2Txt основано на фреймворке Spring Boot и использует следующие зависимости:
    • Spring Boot Starters: Web;
    • Дополнительные зависимости: Lombok, Tomcat Starter, Aspose PDF, Apache PDF.

Другие мои публикации на Инфостарте:

Вступайте в нашу телеграмм-группу Инфостарт

PDF1C КонвертацияPDF1с pdfto1c java Apache PDF Aspose PDF spring boot

См. также

Внешние источники данных Программист Бизнес-аналитик Пользователь 1С:Предприятие 8 1C:Бухгалтерия Узбекистан Беларусь Кыргызстан Молдова Россия Казахстан Платные (руб)

Готовое решение для автоматической выгрузки данных из 1С 8.3 в базу данных ClickHouse, PostgreSQL или Microsoft SQL для работы с данными 1С в BI-системах. «Экстрактор данных 1С в BI» работает со всеми типовыми и нестандартными конфигурациями 1С 8.3 и упрощает работу бизнес-аналитиков. Благодаря этому решению, специалистам не требуется быть программистами, чтобы легко получать данные из 1С в вашей BI-системе.

28500 руб.

15.11.2022    30473    42    49    

46

Зарплата Внешние источники данных Бюджетный учет Перенос данных 1C Системный администратор Программист 1С:Предприятие 8 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактическим удержаниям, НДФЛ, вычетам, страховым взносам из базы Парус 8 учреждений (далее Парус) в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (далее 1С) и начать с ней работать с любого месяца года.

122000 руб.

19.08.2020    29150    27    3    

28

Розничная торговля Внешние источники данных Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист 1С:Предприятие 8 1С:Бухгалтерия 3.0 Фармацевтика, аптеки Россия Бухгалтерский учет Платные (руб)

Внешняя обработка загрузки данных из файла-выгрузки, сформированного в программе F3 TAIL версии 3.4 (и выше) или еФарма версии 2.1, в базу конфигурации 1С: Бухгалтерия предприятия 8, ред. 3.0 (Базовая, ПРОФ, КОРП, ФРЕШ (тонкий клиент)).

17080 руб.

19.12.2016    53506    121    107    

83

Внешние источники данных Кадровый учет Файловый обмен (TXT, XML, DBF), FTP Перенос данных 1C Программист 1С:Предприятие 8 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактическим удержаниям, НДФЛ, вычетам, страховым взносам из базы Парус 10 учреждений (далее Парус) в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (далее 1С) и начать с ней работать с любого месяца года.

84000 руб.

05.10.2022    13084    14    8    

16

Внешние источники данных Программист Бизнес-аналитик 1С:Предприятие 8 1С:Управление производственным предприятием 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Обработка для выгрузки данных из подготовленных СКД в фоновом режиме в базу ClickHouseDB, PostgreSQL, MySQL, в шину данных с поддержкой REST API (CSV, JSON. SQL), в локальные файлы (CSV, JSON, XLS, XLSX) или в Google Sheets. Это дополнительная подключаемая обработка.

18000 руб.

21.08.2024    8292    21    4    

18

Внешние источники данных Пользователь 1С:Предприятие 8 1C:Бухгалтерия 1С:Розница 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 Платные (руб)

Быстро и легко. Выгрузка всех элементов и групп номенклатуры (с их иерархией), кроме помеченных на удаление. Без использования COM-объектов.

4880 руб.

16.08.2023    3738    7    8    

9
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. AlX0id 09.09.19 12:03 Сейчас в теме
Ежели просто текст извлечь - то есть и платформенные средства:
http://forum.infostart.ru/forum9/topic102380/message1056722/#message1056722
unknow_user; +1 Ответить
2. da_1c 199 09.09.19 22:30 Сейчас в теме
(1) Благодарю. Там тоже нужна внешняя программка "Для работы нужно установить Adobe PDF IFilter v6.0" и вытягивание одной строкой дольше разбирать а здесь почти сразу можно получить из построчных данных массив строк и делать с ним что хочешь.
3. RustIG 1949 10.09.19 12:03 Сейчас в теме
(0) спасибо. по-тихоньку учимся работать с пдф...
4. RWS88 1 07.05.20 12:46 Сейчас в теме
Спасибо за обработку!
5. zavis11 39 21.05.21 08:15 Сейчас в теме
Спасибо за обработку!
Только не все файлы пдф распознаются. Извлечение текста из некоторых файлов возвращают пустую строку. Не знаете с чем это может быть связанао?
user2040883; +1 Ответить
9. da_1c 199 15.09.24 22:28 Сейчас в теме
(5) если в пдф картинка, то не распознает
6. vovafr1 4 01.11.21 19:55 Сейчас в теме
добрый день, загрузку накладных сделаете из пдф?
7. AlexxGor 3 07.12.21 12:49 Сейчас в теме
А ФайлУтилиты() где Функция?
Rustork-26; ovt256; rullin; mihail_iasinsky; user1721036; +5 Ответить
8. user1234601 11.05.22 18:43 Сейчас в теме
Добрый день! Подскажите пожалуйста, как в 1с можно определить, что pdf файл защищен паролем?
Для отправки сообщения требуется регистрация/авторизация