Чтение файлов 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
130
130 Скачать (2 SM) Купить за 2 150 руб.
Java веб-приложение Pdf в Text
.war 99,63Mb
0
0 Скачать (1 SM) Купить за 1 850 руб.

   Мои попытки прочитать файл 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С v8.3 Управляемые формы Анализ и прогнозирование Конфигурации 1cv8 Узбекистан Беларусь Кыргызстан Молдова Россия Казахстан Платные (руб)

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

28500 руб.

15.11.2022    21614    22    49    

39

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

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

84000 руб.

24.04.2017    51858    104    165    

91

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

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

120000 руб.

19.08.2020    25692    25    1    

27

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

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

84000 руб.

05.10.2022    11281    13    8    

15

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

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

13200 руб.

19.12.2016    47775    88    105    

68
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. AlX0id 09.09.19 12:03 Сейчас в теме
Ежели просто текст извлечь - то есть и платформенные средства:
http://forum.infostart.ru/forum9/topic102380/message1056722/#message1056722
2. da_1c 189 09.09.19 22:30 Сейчас в теме
(1) Благодарю. Там тоже нужна внешняя программка "Для работы нужно установить Adobe PDF IFilter v6.0" и вытягивание одной строкой дольше разбирать а здесь почти сразу можно получить из построчных данных массив строк и делать с ним что хочешь.
3. RustIG 1833 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 189 15.09.24 22:28 Сейчас в теме
(5) если в пдф картинка, то не распознает
6. vovafr1 4 01.11.21 19:55 Сейчас в теме
добрый день, загрузку накладных сделаете из пдф?
7. AlexxGor 3 07.12.21 12:49 Сейчас в теме
А ФайлУтилиты() где Функция?
ovt256; rullin; mihail_iasinsky; user1721036; +4 Ответить
8. user1234601 11.05.22 18:43 Сейчас в теме
Добрый день! Подскажите пожалуйста, как в 1с можно определить, что pdf файл защищен паролем?
Оставьте свое сообщение