Мои попытки прочитать файл 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С. Возможно, что Вам придется поиграться в строке запуска с параметрами утилиты и конечно написать свой парсер текстового документа.
Примеры будут работать в любой конфигурации на УФ, где есть общие модули СтроковыеФункцииКлиентСервер, ОбщегоНазначения и версияБСП не ниже 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.
Другие мои публикации на Инфостарте: