Настройка pdf в 1с
Всем привет. Как-то мне поступило задание прикреплять PDF файлы к документам в 1С, при том что было много документов и один многостраничный PDF файл, который необходимо было разделять на странички и каждая страница соответствовала определенному документу. Естественно мне хотелось автоматизировать полностью весь процесс, чтобы 1с сама разделяла файл PDF на листы, прочитывала каждый лист и сопоставляла его с документом. Я нашла решение и прикрепляю программы, которые мне в этом помогли:)
Программа Pdftk server позволила мне узнать сколько страниц есть в файле PDF:
Далее программа Pdftk server при помощи команды "cat + "номер страницы" + output" разбила мне файл PDF по страницам в цикле:
В итоге у меня в папке есть много файлов PDF по одной страничке, теперь мне необходимо прочитать каждый файл при помощи программы PDF2TXT:
Вот ссылки на программы:
Мы создали текстовый файл в кодировке UTF-8, теперь его нужно прочитать:
Вот где я скачала программу-помощницу:
Инструменты XPDF (по ссылке скачать инструменты xpdf, в архиве найдете pdftotext, остальные файлы не нужны)
Надеюсь, моя работа поможет многим!)
Специальные предложения
делал свою компоненту Native на C++ пару лет назад, все никак руки доделать не дойдут ибо сейчас это не актуально, то что нашел, прикрепил. умеет сохранять страницы в текст(правда там поленился убрать вывод информации по шрифтам и прочему), в png, количество страница. но основная цель была сохранение в png
andrey314; akR00b; Stalnoff; Zarikus26; tyasytova; sharonovev; AllexSoft; kraynev-navi; DrAku1a; Margo462; + 10 – Ответить
(0) (1) Можно воспользоваться tesseract ocr (смотрите на github'е)
Там крайне много возможностей, в том числе можно получать не только сырой текст, но и положение онного на странице.
Ставиться не сложно, на лине так вообще одной строкой в терминале.
Под винду уже есть собраные версии.
(25) ага, и качество распознавания ниже плинтуса, пробовал я его, тут речь идет об извлечении текста, который не нужно распознавать, он и так текст
(1)Наше то,. что долго искал.
Есть вопрос - попробовал использовать закомментированный кусок кода:
Платформа благополучно отъезжает.
На сохранении файла - работает корректно все.
Этот метод работает?
Я в свое время тоже разбирался с разбиением ПДФов. Мне понравилась программа GostScript, в ней разбиение многостраничного файла делается одной командой: вот строка из bat-файла
call "C:\Program Files\gs\gs9.20\bin\gswin64.exe" -q -dSAFER -dBATCH -dNOPAUSE -sDEVICE=jpeg -r100 -sPAPERSIZE=a4 -sOutputFile="Z:\!\doc-%03d.jpg" "Z:\!\1234.pdf"
Здесь:
"Z:\!\1234.pdf" - путь к многостраничному фалу
-sOutputFile="Z:\!\doc-%03d.jpg" - параметр говорит о создании файлов по маске (1 страница - 1 файл): doc-001.jpg, doc-002.jpg, doc-003.jpg, .
В свое время остановился, на попытке понять как обработать не 1, 2, 3 многостраничный файлов, а 100+ (так до конца и не разобрался с параметрами). Может время придет - вернусь к работе
Без компонент, на двоичных данных бы. За такое и 10 $m не жалко будет!
Где-то на ИС встречал в комментариях "Количество страниц в PDF-файле".
(6) интересно. хотелось бы, а то этот конвертер PDF2TXT на 30 дней, еще ключи искать, бесплатную прогу найти пока не смогла
(7) Можно воспользоваться tesseract ocr (смотрите на github'е)
Там крайне много возможностей, в том числе можно получать не только сырой текст, но и положение онного на странице.
Ставиться не сложно, на лине так вообще одной строкой в терминале.
Под винду уже есть собраные версии.
UPD:
Если вопрос стоит как "искать ключи", то очивидный FineReader очивиден, дальше торрентов искать не придеться ;-)
Также практически на 100% уверен, что у гугла есть подобный вебсервис, там вроде хотели денюжек, но крайне мало и возможно есть "триал".
(27) посмотрите я дополнила статью, нашла бесплатное приложение pdftotext, работает тоже из командной строки :)
Для ковыряния двоичных данных под окнами лучше использовать бесплатный HxD
(6) (7) Из личного: для решения описанной задачи (0) мы сначала воспользовались программой ABBYY Scan Station (ABBYY - по запросу спокойно предоставляет 30-дневный ключ, спокойно предоставили продление еще на 1 месяц, для тестов), после чего мы сделали приобретение, т.к. софтина ОЧЕНЬ проста в настройке и хорошо выполняет обозначенную задачу (но без распознавания).
Единственный ее недостаток и весьма значительный - это не возможность ее запустить с командной строки - то есть нет запуска по расписанию.
Но из плюсов я бы назвал цену 2-3 года назад она составляла 24 000 руб. или 10 часов франча (на тот момент).
Так мы поигрались наверное с год, пока мне не надоело запускать каждый день данную сфотину и мы приобрели ее расширенную версию - ABBYY Recognation Server. В данной софтине настроек и возможностей поболее - работает на УРА уже 1,5 года. Есть еще распознавание и индексирование - последнее требует работу оператора (при приобретении удалось зачесть стоимость ранее приобретенной ABBYY Scan Station).
По ценам уже значительно дороже и цена зависит от количества распознанных страниц в месяц. На сегодня у нас 50к страниц и этого пока хватает (1 числа каждого месяца счетчик сбрасывается).
Цены опять же в открытых источниках не найти, но я их так же приведу для понимания: Сама программа + лицензия на 15к страниц - 215 000 руб, апгрейд с 15к до 50к страниц- 170к руб, апгрейд с 15к до 100к страниц - 247к руб (цены на июль 2016)
Стоимость разовая и в дальнейшем доплат не требует.
Это не реклама , просто показал, что решили использовать у нас в организации. Иногда может быть значительно эффективнее купить готовый продукт, чем писать свое с нуля. С нуля для разработчика хорошо - ты учишься работать с "новым", но работодатель не всегда может быть заинтересован оплачивать таким образом твое обучение, если стоит вопрос в сроках и качестве (ведь сколько еще времени уйдет на отладку "подводных камней").
P.S.
Кстати в 1С Документооборот используют так же сторонние библиотеки, тот же самый GostScript указанный в (4) для "распиливания" файлов, а для распознавания другую не помню как называется. От туда можно было бы глянуть как они это делают, но пока у меня нет на это времени да и описаный выше софт решает поставленную задачу.
Насколько мне известно, у платформы 1С нет встроенных средств чтения на лету файлов PDF для их последующего анализа, и приходится использовать внешние инструменты. Об одном из таких вариантов и пойдет речь.
Мои попытки прочитать файл PDF из 1С начались с поисков встроенных инструментов 1С, ведь умеет же ТабличныйДокумент уже читать файлы XLS на лету и даже где-то в просторах гугл поиска были ссылки бывалых на то, что такое вроде как реализовано в 1С:Документооборот, но вроде так же на какой-то внешней компоненте. Разобраться на тот момент как это работает в типовой не получилось. Буду рад комментариям с замечаниями и примерами из этой конфигурации.
Итак, приступим. Скачиваем набор утилит с указанного выше сайта и получаем файл вида 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.
Официальный технологический блог фирмы «1С» опубликовал заметку, в которой рассказывает о возможностях просмотра PDF-документов непосредственно в конфигурации 1С.
Новые возможности для PDF в 1С:Предприятие
Фирма «1С» анонсировала новые функциональные возможности в технологической платформе «1С:Предприятие 8.3.22».
Разработчики обещают предоставить пользователям возможность просматривать PDF-документы непосредственно в приложениях 1С, без использования дополнительных внешних инструментов.
«У объекта ДокументPDF будет реализован метод Показать (Show), открывающий окно для показа PDF-документа. Метод работает в тонком, толстом и веб-клиенте», – говорится в описании релиза.
В интерфейсе таже доступны кнопки для поворота и изменения масштаба просматриваемого документа.
Еще одна возможность, которая может быть востребована у пользователей, – интерактивная проверка электронных подписей, которыми заверен документ. Раньше это можно было сделать только программно из встроенного языка.
В каких случаях может пригодиться новая функциональность
Предполагается, что просмотр PDF будет все более востребован, поскольку все больше документов хранится именно в электронном виде. Сюда можно отнести копии договоров, спецификаций и других неформализованных документов, которые возникают в процессе документооборота.
Существенным фактором является и быстрое распространение ЭДО, где новая функциональность 1С 8.3.22 также будет востребована.
Фирма «1С» приглашает всех желающих присоединиться к тестированию нового релиза. Чтобы получить дистрибутив 8.3.22 – заполните заявку, форма которой размещена в «Зазеркалье». После этого можно будет получать промежуточные сборки платформы и рассчитывать на рассмотрение выявленных в процессе тестирования ошибок.
Часто при разработке какого-либо функционала в 1С мы делаем прикрепление файлов pdf.
Итак, Первым делом идет Выбор файла, далее нужно быстро просмотреть приложенный файл.
Для решения используются следующие варианты:
файл Выбирается по кнопке Выбор файла и помещается в Реквизит с типом Хранилище Значений
Код 1C v 8.х
Для открытия используем:
1. Открытие файла в программе Adobe Acrobat Reader
для этого используйте код:
Код 1C v 8.х
2. Добавляем на форму элемент ActiveX Adobe PDF Reader
для этого используйте код:
Код 1C v 8.х
Вот так это выглядит:
Похожие FAQ
Вывести табличный документ в PDF 18
Данный пример работает на платформе выше 8.2.13 Макет = ПолучитьМакет(" Макет" ); ОбластьШапка = Макет.ПолучитьОбласть(" Шапка" ); ТабДок = Новый ТабличныйДокумент; ОбластьШапка.Параметры.НомерДок = Номер; ОбластьШапка.Параметры.ДатаДок = Выгрузка в PDF из 1С (Средствами OpenOffice) 0
Возникла задача отправлять счета почтой. PDFcreator не подошел поскольку не удалось вместить счет на одну страницу по ширине. Решил попробовать OpenOffice. Как сохранять в PDF нашел быстро, а вот как уместить счет на одну страницу вширь искал долго. Загрузка данных в 1С из PDF 4
В данной статье описан пример реализации загрузки данных накладных из PDF файлов для одного крупного Ритейла. И так у Нас есть несколько файлов в формате pdf, которые нам необходимо загрузить в 1С. Чтение PDF файлов из 1С Первым дело я стал Как получить Временный каталог или Временный файл 4
Временный каталог: КаталогВременныхФайлов() Получает имя каталога, который используется программой для размещения временных файлов. Пример: ГдеИскать = КаталогВременныхФайлов(); // В тонком клиенте код работает ИмяФайла = КаталогВременны Конвертация экселя в картику 0
На листе екселя есть картинки, надписи в произвольной форме. Как это чудище с конвертировать в картинку. Нашел процедуру ФайлПрограммы = НовыйФайл("C: Program Files Bullzip PDF Printer gs gswin32c.exe"); Если Не ФайлПрограммы.Существует() Тогда Посмотреть все результаты поиска похожих
В данной статье описан пример реализации загрузки данных накладных из PDF файлов для одного крупного Ритейла.
И так у Нас есть несколько файлов в формате pdf, которые нам необходимо загрузить в 1С.
Чтение PDF файлов из 1С
Первым дело я стал искать, как напрямую можно прочитать данные из 1С в PDF файлах - было найдено много информации и вариантов решений, но к сожалению большинство из них не правильно работали с кодировкой В результате банальный текст вида Красный стул превращался в страшную кракозябру.
Далее после долгих поисков был найден конвертер PDF в TXT - pdf2txt
Поддержка командной строки:
PDF2TXT [output TXT file] [-logfile] [-open] [-space] [-html] [-format] [-silent] [-blankline] [-summary] [-zoom ] [-?] [-h]
: Open an existing PDF file to convert.
[output TXT file] : Write to TEXT file, the default is same filename of input PDF file.
[-first ]: Specify the first page number.
[-last ]: Specify the last page number.
[-logfile] : Write log to "C:\pdf2txt.log" file.
[-open] : Auto open the text file after it be created.
[-space] : Auto insert spaces into text file.
[-html] : Output to a HTML file, not a text file.
[-format] : Keep the page layout in the generated TXT file.
[-silent] : Disable error and warning messages.
[-blankline] : Auto delete blank line in the generated TXT file.
[-summary] : Get PDF document summary.
[-zoom ] : Set zoom ratio, the range is from 50 to 200.
[-unicode] : Create UTF-8 encoding text file.
Примеры:
Код Batch File (DOS, CMD, BAT)
Код на 1С для конфигурации УТ 10.3:
Похожие FAQ
10060 (0x0000274C): Попытка установить соединение была безуспешной 19
Установили новый терминальный сервер, на нем подняли 1С, терминальные пользователе неописуемо довольны, все просто летает :) И вот же надо было такому случиться, главному бухгалтеру не понравилось работать через терминал, а еще у нее свой ноутбук и 1C: Enterprise Development Tools 50
И вот случилось долгожданное: Вышел 1C: Enterprise Development Tools - это среда для разработки конфигурации в IDE Eclipse. С сайта 1С: « 1C:Enterprise Development Tools » – это инструмент нового поколения для разработчиков бизнес-приложений систем Google maps : вывод точек на карту и режим панорамы 7
В отличие от яндекс карт в GMaps можно использовать панорамы - за что им большой плюс! Надеюсь в яндексе прочитают этот пост и тоже когда-нибудь это сделают! Для клиента нужно было сделать вывод объектов на карту С возможностью просмотра панора PostgreSQL: установка, настройка, обслуживание 11
PostgreSQL напрямую "из коробки" применяться для использования с 1С Предприятем не может. Необходима именно адаптированная версия от 1С, превращающая PostgreSQL в блокировочник, причем нужно понимать, что блокировки будут накладываться на всю таблиц Автоматическая архивация баз 1С с использованием Cobian Backup и VBS скриптов 8
Клиент попросил настроить автоматическую архивацию баз 1С раз в три дня и выгрузку архивов на Dropbox и на FTP Сервер. Кроме 1С нужно архивировать папку с рабочими документами. Хочет - так хочет, делаем: Первым делом настроим автоматическую архивац Посмотреть все результаты поиска похожих
Еще в этой же категории
Ключевые слова и Изображения
Слова упорядочены по частоте использования в тексте
Изображения
Читайте также: