Конвертация PDF в 1С

05.05.25

Разработка - Разработка внешних компонент

COM-компонента для работы с PDF (32/64 bit)

Файлы

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

Наименование Скачано Купить файл
Конвертация PDF в 1С (x86 + x64):
.7z 15,62Mb ver:1.5
241 4 200 руб. Купить

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

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

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

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

Предлагаю вашему вниманию удобный инструмент для работы с PDF форматом.

Несмотря на то, что на ИС существует множество подобных вещей, но для универсальности и простоты пришлось собрать собственный велосипед.

Это обыкновенная COM-компонента под Win, позволяющая преобразовывать PDF файлы в изображения (с отличным качеством), изображения в PDF, а также разбивать PDF на более мелкие файлы и склеивать файлы PDF в единый документ, извлекать текст из PDF, имеющих текстовые слои, вставлять на страницы PDF водяные знаки, логотипы, печати.

Есть поддержка x86 и x64 платформ.

В основе движка лежат две мощные библиотеки: iTextSharp 5 и PdfiumViewer .

Как пользоваться:

сначала просто проинсталлировать в систему пакет "SetupArrowPDF.msi" (выбираем что-то одно: из папки "x86" или из "x64") -> необходимые библиотеки скопируются в программные файлы, а компонента зарегистрируется автоматически.

далее инициализируем:

Конвертер = Новый COMОбъект("ArrowPDF.Converter");

можно сразу посмотреть версию:

Сообщить(Конвертер.Version());

[пока] есть <8> прикладных методов:

1) для сборки изображений в единый PDF файл:

 
 IMG2PDF()

2) для конвертации страниц PDF в изображения:

 
 PDF2IMG()

3) для дробления PDF:

 
 SplitPDF()

4) для слияния PDF:

 
 MergePDF()

5) для извлечения текста из PDF:

 
 GetText()

6) для вставки в PDF логотипов, водяных знаков, печатей и штампов:

 
 AddWatermark()

7) для сжатия PDF файлов:

 
 Compress()

8) для защиты PDF файлов от печати и изменений:

 
 Protect()

Почти все свойства данной компоненты, за исключением диапазонов или номеров страниц, можно не указывать принудительно, тогда они будут выставлены по умолчанию.

 

Горизонты использования компоненты не ограничены только 1с. Можете использовать её аналогично и в других ЯП.

Если будут пожелания на расширение функционала - высказывайтесь. Вместе сделаем мир лучше )


P.S. Просьба не сообщать, что можно сделать подобное через ghostscript или другие библиотеки или приложения. Перепробовал несколько разных инструментов - либо оч. сложно, либо не то качество или удобство.

 

Так как публикация вызвала интерес у сообщества, буду развивать функционал по мере появления новых идей и свободного времени.

Upd. 03.04.2020 - v.1.1

Доработка регистрации библиотеки типов. Исправление ошибки COM-взаимодействия из других ЯП.

Upd. 04.04.2020 - v.1.2

Добавлены методы GetText() и AddWatermark(). Свойство ImgPages заменено на PdfPages, которое может использоваться в нескольких методах.

Upd. 19.05.2020 - v.1.3

Добавлено сжатие PDF файлов - метод Compress().

Upd. 08.07.2020 - v.1.4

Добавлена возможность установки пароля на PDF документ - метод Protect().

Upd. 20.11.2020 - v.1.5

Добавлена 64-х разрядная версия компоненты.

 

Проверено на следующих конфигурациях и релизах:

  • 1С:Библиотека стандартных подсистем, редакция 3.1, релизы 3.1.11.155, 3.1.10.514, 3.1.9.518

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

PDF COM внешняя компонента конвертация x64

См. также

Разработка внешних компонент Телефония, SIP Разработчик 1С:Предприятие 8 1C:Бухгалтерия Россия Платные (руб)

Внешняя компонента выполнена по технологии Native API для 1С 8.х, обеспечивает доступ к программным АТС Asterisk (FreePBX, Elastix) через AMI интерфейс. Через него можно управлять многими функциями Asterisk (определение номеров, перевод звонков, набор телефона и т. д.)

5246 руб.

04.05.2018    52190    128    68    

72

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

Внешняя компонента позволяет работать c TWAIN-совместимым оборудованием (сканерами, камерами) . Полностью совместима со стандартной TWAIN-компонентой из БСП и может применяться как ее замена без изменения вызовов, при этом может работать с 64-разрядной платформой, а так же имеет расширенную функциональность, например, сохранение результата непосредственно в PDF без использования сторонних утилит. Прекрасно работает на сервере, тонком клиенте и веб-клиенте (проверена работа в браузерах Google Chrome, Mozilla Firefox и Microsoft Internet Explorer).

5084 руб.

12.05.2020    34947    147    100    

103

Разработка внешних компонент Инструментарий разработчика Разработчик 1С 8.3 Бесплатно (free)

Внешняя обработка проверяет выгрузку конфигурации, расширений и внешних обработок и находит места, где код руками делает то, что платформа умеет штатно: регулярки через COM, пауза пустым циклом, свой хеш и Base64, распаковка архивов программой, буфер обмена через HTML-поле. По каждой находке пишет, доступна ли замена на месте или мешает тонкий клиент.

13.10.2026    1314    144    nedomolkov.ivan    5    

22

Разработка внешних компонент Разработчик 1С:Предприятие 8 Бесплатно (free)

Нативная внешняя компонента для 1С 8 для чтения файлов Excel без установленного Excel и делает это быстро, файл 68МБ загружается в таблицу значений ~1 секунду. Компонента поддерживает чтение двух форматов: Excel 2007+ и Excel 97-2003 Формат файла определяется автоматически по сигнатуре (первые 8 байт файла), а не по расширению. Позволяет открывать XLS и XLSX файлы и получать содержимое листов в виде ТаблицыЗначений или JSON-массива.

03.07.2026    2384    skyadmin    31    

24

Разработка внешних компонент Разработчик 1С 8.3 Бесплатно (free)

В современных корпоративных решениях на платформе 1С:Предприятие 8.3 всё чаще возникает потребность в визуальном моделировании и автоматизации бизнес-процессов с использованием нотации BPMN 2.0. Стандартные средства платформы не предоставляют полноценного редактора BPMN, однако интеграция открытой библиотеки bpmn-js позволяет реализовать интерактивное моделирование бизнес-процессов непосредственно в 1С. В статье рассмотрены архитектура решения, пошаговая инструкция по сборке библиотеки из исходников для WebKit, а также примеры программного взаимодействия между 1С и JavaScript.

03.04.2026    4279    SultanovStas    8    

23

Разработка внешних компонент Системный администратор Разработчик Стажер Бесплатно (free)

Библиотека для работы с базами SQLite из 1С на основе внешней компоненты. Для Linux и Windows, бесплатно и с открытым исходным кодом!

14.01.2025    8222    bayselonarrend    17    

54

Разработка внешних компонент Разработчик 1С:Предприятие 8 Россия Бесплатно (free)

В статье описывается приложение-конструктор внешних компонент (native API). Конструктор упрощает процесс разработки за счет удобного добавления всех нужных функций и процедур в графическом режиме, с указанием их параметров и типов параметров. На выходе приложение генерирует готовый код на С++ и Rust и позволяет сразу приступить к реализации, без настройки API компоненты вручную.

04.12.2024    13808    kovalevdmv    29    

84
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Legavaz 712 31.03.20 13:19 Сейчас в теме
2. DarkAn 1108 01.04.20 17:27 Сейчас в теме
Большое спасибо! Обязательно попробую!
3. Xershi 1566 02.04.20 08:17 Сейчас в теме
Я своему клиенту просто рекомендовал поменять логику в работе 1с, чем делать, то что умеет компонента.
Если нужно предложение, то это переписать на нейтив. У многих сервер на линукс.
mefalcon; akR00b; cleaner_it; +3 – Ответить
5. SerVer1C 1146 02.04.20 10:58 Сейчас в теме
(3) К сожалению, у многих клиенты на Венде. А компонента прекрасно будет там работать.
7. Xershi 1566 02.04.20 11:05 Сейчас в теме
(5) ну как говорится и так сойдет)
Но чтобы проф уровень поднять вам, то (3) и (4) маст хев!
Понятно, что это другой уровень разработки, но зато сразу показывает уровень разработчика.
Я кстати хотел писать ВК для андроида, чтобы он генерировал баркод. И обязательно на джаве.
Руки так и не дошли. А у вас как с этим?
Плюс 1С уже это реализовала. Поэтому только из академического интереса такое делать.
8. SerVer1C 1146 02.04.20 11:12 Сейчас в теме
(7) Вы с какой целью интересуетесь моим уровнем разработчика? Писать кросс-платформенную библиотеку для работы с pdf - это уже далеко выходит за рамки данной статьи да и данной площадки в целом...
11. Xershi 1566 02.04.20 12:15 Сейчас в теме
(8) почему же выходит?
Вы просили задел, я его вам дал.
Или речь шла о копипасте простых операций?
Цель приобрести новые знания и опыт.
30. compreSSor 10 15.10.20 14:49 Сейчас в теме
(7)
Плюс 1С уже это реализовала.

а можно подробнее ?
31. Xershi 1566 15.10.20 15:33 Сейчас в теме
(30) в мобильной БСП есть компонента, тестируй.
84. Detache 10.08.21 15:23 Сейчас в теме
(31) Мобильная БСП - это 1С:Библиотека подключаемого оборудования для мобильных приложений или что-то другое. Можете подробно рассказать где найти такой функционал?
85. Xershi 1566 10.08.21 16:21 Сейчас в теме
(84) на сайте ИТС. Я писал в 2019 в 1С, но они до сих пор 3 версию не выпустили.
86. Detache 10.08.21 17:37 Сейчас в теме
(85) по каким ключевым словам искать на ИТС? Не нашел.
4. duck 267 02.04.20 10:23 Сейчас в теме
Работа компоненты будет зависеть от разрядности сервера х32 или х64?
6. SerVer1C 1146 02.04.20 11:01 Сейчас в теме
(4) Компонента 32-х битная, но в 64-х битном окружении отлично работает. В т. ч. будет работать и на клиенте. Если очень необходимо (для каких-то гиговых pdf), то могу реализовать полностью под х64.
9. SerVer1C 1146 02.04.20 11:49 Сейчас в теме
(4) Не так вам ответил. Если вы хотите использовать данный COM-объект в 64-х битном приложении, то вам придется сделать для компоненты обёртку, иначе не заработает "как есть".
10. Xershi 1566 02.04.20 12:13 Сейчас в теме
(9) именно поэтому я отказался от COM решений!
32. SerVer1C 1146 20.11.20 01:11 Сейчас в теме
(4) с версии 1.5 появилась поддержка 32-х и 64-х разрядных платформ.
12. cleaner_it 202 04.04.20 09:48 Сейчас в теме
Я клиенту посоветовал (и сам пользовался в схожей ситуации) виртуальным принтером PDF. А вообще - плюс, конечно)
13. SerVer1C 1146 04.04.20 14:26 Сейчас в теме
(12) Да, можно в некоторых кейсах. Только вот pdf-принтеры не умеют конвертировать в графический формат...
14. chuff 07.04.20 09:51 Сейчас в теме
(13) Я бы не утверждал так категорично. PDFCreator прекрасно конвертирует. Несколько лет пользуюсь им для автоматического конвертирования документов из 1С в JPG
15. SerVer1C 1146 07.04.20 10:12 Сейчас в теме
(14) Прямо вот так просто через виртуальный принтер?
17. chuff 07.04.20 12:16 Сейчас в теме
(15)Не помню, какие там ещё есть плюшки - типа соединения/дробления - не нужно было. Может и нет больше ничего. Но вот выгрузка табличных документов в JPG/PDF работает. Мне, в принципе, этого было достаточно.
16. chuff 07.04.20 12:10 Сейчас в теме
Если он предварительно настроен на определенный формат - то да, просто так.
Но если если подключить его через COM, то можно ещё и предварительно настройки конвертирования задавать из кода.
Формат, качество преобразования.
18. kirlog 145 18.05.20 22:19 Сейчас в теме
Здравствуйте!
А сжатие PDF реализовать не планируете?
19. SerVer1C 1146 19.05.20 13:26 Сейчас в теме
(18) Сделал. В версии 1.3
20. kirlog 145 23.05.20 03:43 Сейчас в теме
Спасибо! Отлично!
21. greencom 09.06.20 12:46 Сейчас в теме
// разрешающая способность
//Конвертер.ImgDpiX = 1200;
//Конвертер.ImgDpiY = 1200;

Данные методы работают и какие значения поддерживаются?
22. SerVer1C 1146 10.06.20 00:48 Сейчас в теме
(21) Методы работают. Значения могут быть произвольными (на ваш вкус).
23. KVIKS 506 19.06.20 03:04 Сейчас в теме
Не подключается компонента, пишет класс не зарегистрирован
1С 8,3,16, х32
windows 7 х64
переустановка не помогла, подскажите что можно сделать?
24. SerVer1C 1146 19.06.20 07:51 Сейчас в теме
(23) Запустите установку от имени Администратора
78. user1296085 04.08.21 16:01 Сейчас в теме
(24) Добрый день! Запустила установку от имени администратора, но все равно появляется ошибка:

Ошибка при вызове конструктора (COMОбъект)
Конвертер = Новый COMОбъект("ArrowPDF.Converter");
по причине:
-2147221164(0x80040154): Класс не зарегистрирован
79. user1296085 04.08.21 16:08 Сейчас в теме
(78) Ошибка решилась. Надо было установить версию x86.
25. vex2865 72 26.06.20 16:54 Сейчас в теме
Добрый вечер!
Win 10 x64
Запускал установку от имени админа

Ошибка

Конвертер = Новый COMОбъект("ArrowPDF.Converter");
по причине:
-2147221005(0x800401F3): Недопустимая строка с указанием класса

Подскажите, в чем может быть проблема?
26. SerVer1C 1146 27.06.20 23:21 Сейчас в теме
(25) 1С должна быть 32-х битная. Если у вас так и есть, то тогда требуется дополнительная информация.
27. vex2865 72 28.06.20 11:19 Сейчас в теме
(26)Понял. К сожалению 1с x64.
33. SerVer1C 1146 20.11.20 01:12 Сейчас в теме
(27) с версии 1.5 появилась поддержка x64 !
28. sp18s 17.09.20 16:42 Сейчас в теме
Здравствуйте! Задача следующая.
Есть несколько pdf файлов. Там изображения.
Необходимо получить новый pdf файл на 1 страницу с размещением в нём этих изображений в произвольном виде. Например, первый файл - слева, второй - справа сверху, третий - справа снизу.
Еще должен быть добавлен разный текст. Например, артикул, серия, модель товара и т.д.
Кроме того, результирующий файл должен быть в векторном виде. Для качественной печати.
Как пример такого - инструкция по сборке товара, собранная на основании нескольких pdf файлов.
Такое возможно сделать с Вашей компонентой?
29. SerVer1C 1146 17.09.20 21:36 Сейчас в теме
(28) Данная компонента является по большей части конвертером, чем созидателем pdf файлов. Вы конечно можете извлечь изображения и расставить их в новом файле, поигравшись отступами, но возможности добавления текста в ней отсутствуют, если только вы не подготовите изображения со штрих-кодами и текстами. (Конечно, исходные библиотеки движка компоненты позволяют сделать запросто добавление чего-либо в pdf файл, но тогда придется дорабатывать компоненту.) Но вот векторный pdf вы всё равно не создадите. Вам лучше смотреть в сторону Inkscape и им подобным.
34. CanAll1C 16.12.20 11:09 Сейчас в теме
Добрый день.

Конвертер = Новый COMОбъект("ArrowPDF.Converter");
по причине:
-2147221005(0x800401F3): Недопустимая строка с указанием класса

64 ОС (Windows 10 Pro) и 64 1С, версия компоненты самая крайняя. Скачивали 16.12.2020.
35. SerVer1C 1146 16.12.20 11:22 Сейчас в теме
(34) в архиве 2 варианта компоненты, вы точно установили 64-bit ? Если вы поставили 32-bit, то сначала обязательно удалите ее через панель управления, т. к. обе версии одновременно не могут существовать
36. CanAll1C 16.12.20 11:26 Сейчас в теме
Да, именно 64.
Могу визуально продемонстрировать по средствам teamviewer, anydesk.
37. SerVer1C 1146 16.12.20 11:32 Сейчас в теме
(36) Я вам верю. Это частая ошибка при использовании COM-компонент. Однозначного решения проблемы нет, т. к. могут влиять многие факторы (настройки в ОС). Попробуйте проверить работоспособность компоненты на "чистой" системе.
38. SerVer1C 1146 16.12.20 11:39 Сейчас в теме
(36) Кстати, устанавливали msi-пакет от имени администратора?
39. CanAll1C 16.12.20 11:41 Сейчас в теме
Только что это выполнили, ошибка такая же. Будем пробовать решить.
41. boltoff 21 28.01.21 11:39 Сейчас в теме
Вопрос по методу "AddWatermark"
По описанию - нужно передавать 2 файла PDF - 1 - сам документ, 2 - печать. Получаем 3-ий файл документ с печатью.
Вопрос, как подготовить 2-ой файл (печать). По описанию этот файл должен быть PDF-ом. Но у меня ничего не получается. Можно подробнее описать этот метод?
42. SerVer1C 1146 28.01.21 16:02 Сейчас в теме
(41) Можно поступить следующим образом: вам надо сначала создать изображение водяного знака на листе, соответствующего размеру исходного PDF. Например, у вас исходная книга формата А4, и есть некоторый водяной знак, например 100*100 пикселей. Вам необходимо создать новое изображение (например, в формате PNG), соответствующее размеру исходной книги, поместить в какой-либо угол ваш водяной знак. Затем получившийся файл преобразовать в PDF (с помощью метода IMG2PDF()) - это и будет PDF с водяным знаком. Затем передать данный файл в метод AddWatermark()
43. boltoff 21 02.02.21 20:14 Сейчас в теме
44. boltoff 21 10.02.21 16:16 Сейчас в теме
Видимо у меня руки не из того места растут.

Код ниже.
Исходник и результат прикрепил.
Что я делаю не так?

&НаСервере
Функция СоздатьPDFСВодянымЗнаком()
Конвертер = Новый COMОбъект("ArrowPDF.Converter");
// ширина и высота создаваемого PDF
// т.к. для PDF дефолтный DPI = 72, то лист формата A4 будет 595*842 пикселей
Конвертер.PdfWidth = 842;
Конвертер.PdfHeight = 595;

// отступы от краёв
Конвертер.PdfLeftMargin = 0;
Конвертер.PdfRightMargin = 0;
Конвертер.PdfTopMargin = 0;
Конвертер.PdfBottomMargin = 0;

// пути к изображениям
изо1 = "D:\1\ЛаншафтКВ.png";

// пути добавим в массив
Изображения = Новый Массив;
Изображения.Добавить(изо1);

// преобразуем массив в безопасный
Если Изображения.Количество() <> 0 Тогда
Файлы = Новый COMSafeArray(Изображения, "VT_BSTR");
КонецЕсли;

// путь к создаваемому PDF
НовыйПДФ = "D:\1\new.pdf";

Результат = Конвертер.IMG2PDF(Файлы, НовыйПДФ);

Если НЕ ПустаяСтрока(Результат) Тогда
Сообщить(Результат);
КонецЕсли;
КонецФункции
Прикрепленные файлы:
new.pdf
45. boltoff 21 10.02.21 16:19 Сейчас в теме
Предыдущий метод не сработал. Сделал в ручную PDF а4 с печатью.

Передаю исходный пдф, пдф с водяным знаком - в новом пдф получается исходный (без печати), но размер чуть больше исходного.



&НаСервере
Функция СоздатьPDFСВодянымЗнаком(ИсходныйПДФ, ВодянойЗнак, НовыйПДФ)
Конвертер = Новый COMОбъект("ArrowPDF.Converter");
Конвертер.PdfPages = "1,2";

Результат = Конвертер.AddWatermark(ИсходныйПДФ, ВодянойЗнак, НовыйПДФ);
Возврат Результат;
КонецФункции
46. SerVer1C 1146 10.02.21 17:25 Сейчас в теме
(45)
Предыдущий метод не сработал.

PDF файл создался же. Проверяйте пути и доступность файлов для учётки, под которой выполняется алгоритм. Компонента работает, ваш код правильный.
47. Warn1ng26ru 7 26.02.21 09:54 Сейчас в теме
Спасибо. Подскажите, метод Compress() имеет возможности настройки? (или подскажите принцип сжатия, по которому он работает) Например: у меня файл pdf размером 10 МБ, используя метод Compress() он уменьшается на 5 КБ. Но если воспользоваться методом PDF2IMG() (поиграться с настройками), а потом воспользоваться методом IMG2PDF(), pdf можно сжать 2, 3, 4 раза (в зависимости от настроек качества изображений).
48. SerVer1C 1146 26.02.21 10:35 Сейчас в теме
(47) Метод Compress() [в версии 1.5 и более ранних] не имеет возможности настройки. Для сжатия используется библиотека iTextSharp с уровнем сжатия PdfStream.BEST_COMPRESSION . Не все файлы после сжатия могут значительно уменьшиться в размерах. Сжатие ещё зависит от версии PDF формата. Точный механизм не исследовал, возможно, в определенных случаях происходит реорганизация внутренних данных без сжатия изображений. В будущем подумаю над тем, чтобы улучшить метод сжатия и сделать его вариативным.
Warn1ng26ru; +1 – Ответить
49. evg81 33 23.03.21 12:23 Сейчас в теме
Спасибо за компоненту.

Есть вопросы про вставку водяного знака (штампа, логотипа и т.п.).

Как в AddWatermark() поместить водяной знак (штамп) слоем поверх исходного PDF ?

В PDF с текстовым слоем видно вставленный водяной знак (штамп), хотя и перекрывается текстом.
В многостраничном PDF со сканами (картинки без текстового слоя) он помещается под картинку исходного PDF и его невидно.
При этом поиском на фоне ищется текст из вставленного PDF, т.е. по факту он вставляется и обнаруживается поиском.

Попробовал поменять местами параметры в AddWatermark(). Это только подтвердило факт вставки в фон. В этом случае наоборот в водяной знак вставляется на фон исходный PDF, и получается так как надо, НО водяной знак это одностраничный PDF и конечно же все остальные страницы исходного документа не добавляются в итоговый документ. Этого в общем-то и не нужно. Просто тест.

Может быть есть возможность указывать какой из файлов будет вставлен в фон, а какой поверх?

Неудобно подгонять водяной знак под размеры страницы исходного PDF.

Можно как-то указать положение для вставляемого PDF, кроме как подгонять его размер страницы под размер исходного PDF?

Разные страницы в PDF могут иметь разные размеры и тут подгонка под размер страницы исходного PDF не поможет.
50. SerVer1C 1146 23.03.21 13:27 Сейчас в теме
(49) Через AddWatermark не получится поместить водяной знак верхним слоем. Как обходной вариант, разбирать PDF на картинки, самому навешивать водяной знак и снова перегонять в PDF. Подумаю над этой возможностью и над указанием положения водяного знака для каждой страницы (такого функционала тоже нет).
51. evg81 33 23.03.21 14:33 Сейчас в теме
(50) спасибо за ответ и за идею. Удалось слоем сверху вставить штампы на все страницы через SplitPDF() исходного PDF во временный каталог, затем вставить во все файлы внутри каталога штамп AddWatemark() с перестановкой первых двух параметров местами и через MergePDF() собрать всё обратно в PDF.

Остается только вопрос не озвученный ранее, каким образом узнать размер страницы исходного PDF?
Теперь это уже одностраничные PDF и по идее должно решить вопрос.

Пока только подгонка под ответ, но заранее я не могу знать какие файлы придут за штампами.
52. SerVer1C 1146 23.03.21 15:12 Сейчас в теме
(51) Постараюсь в ближайшее время добавить метод для получения информации о страницах PDF файла.
53. Stackmann 23.03.21 19:01 Сейчас в теме
(50) Доброго времени суток.
Подскажите, нет возможности передавать водяной знак не как путь к файлу на диске, а как бинарные данные?
54. SerVer1C 1146 23.03.21 21:24 Сейчас в теме
(53) Нет. Компонента сама считывает файл из файловой системы. Пишите двоичный данные в файл и передавайте путь. У вас же в водяном знаке, надеюсь, не секретные данные )
55. akR00b 26 01.04.21 15:18 Сейчас в теме
А скорость разделения одного pdf на множество png не замеряли? примерно
56. SerVer1C 1146 01.04.21 21:17 Сейчас в теме
(55) Если конвертировать в JPG исходный PDF (1000+ страниц, 100+ МБ), то получается примерно следующее: если размер картинки на выходе 1500х2000, то ~9 страниц/сек, если размер 3000х4000, то ~4,5 страниц/сек. Замер на NVMe проводился.
57. akR00b 26 02.04.21 08:14 Сейчас в теме
(56)очень круто! а на гит хабе нет случайно вашей компоненты? за рублики скачать можно?
58. SerVer1C 1146 02.04.21 09:01 Сейчас в теме
59. пользователь 02.04.21 10:00
Сообщение было скрыто модератором.
...
60. user925364 18.05.21 18:17 Сейчас в теме
недопустимая строка с указанием класса. Где регистировать компоненту если база серверная?
61. SerVer1C 1146 18.05.21 22:20 Сейчас в теме
(60) Зависит от того, на чьей стороне вы будете использовать компоненту.
62. user925364 18.05.21 22:46 Сейчас в теме
Я проверил локально на файловой базе точно эта же ошибка. и компоненту установил локально
63. user925364 20.05.21 14:20 Сейчас в теме
как мне заставить ее работать?? никаком образом не работает
65. SerVer1C 1146 20.05.21 16:53 Сейчас в теме
(63) сложно предположить, что происходит в вашей операционной системе... удалите утилиту, затем заново проинсталлируйте с админскими правами, компонента должна зарегистрироваться автоматически.
64. user925364 20.05.21 14:21 Сейчас в теме
другие com обьекты например для обмена с бухгалтерией работают прекрасно
66. user925364 20.05.21 17:18 Сейчас в теме
я правильно понимаю что если база серверная, то нужно ставить ее на сервер? битность та же что и битность сервера? х64
67. SerVer1C 1146 20.05.21 22:00 Сейчас в теме
(66) Если будете конвертировать &НаСервере, то да, компоненту нужно инсталлировать на сервере. Если &НаКлиенте, то на конкретном клиенте. Битность согласно месту исполнения (если сервер x64, то 64-х разрядную компоннету, битность компоненты на клиенте зависит от версии клиента 1с)
68. kaliuzhnyi 136 27.05.21 15:15 Сейчас в теме
Вещь хорошая. С задачами справляется.
Но как сделать чтобы метод Конвертер.PDF2IMG сохранял файл с указанным именем а не просто 1.jpg?
69. SerVer1C 1146 27.05.21 15:30 Сейчас в теме
(68) Из компоненты никак. Она именует изображение по номеру страницы. Используйте: move 1.jpg another_name.jpg
70. kaliuzhnyi 136 27.05.21 15:39 Сейчас в теме
(69) Досадно.
Тогда можете записать в книгу пожеланий - возможность передавать в метод PDF2IMG, какой-то префикс, например:
- У меня есть файл с именем v8_639D_b.pdf
- Я запускаю метод PDF2IMG("С:\Temp\Images\v8_639D_b.pdf", "С:\Temp\Images", "v8_639D_b_")
- У меня формируются файлы v8_639D_b_1.jpg, v8_639D_b_2.jpg, v8_639D_b_3.jpg и т.д.

Как по мне реализация такого варианта вызова была бы очень удобной.
При таком подходе можно через 1с потом обойти и прочитать все файлы(картинки) и сделать с ними все что нужно и потом подчистить за собой.

Спасибо. А за конвертер плюсую.
71. SerVer1C 1146 27.05.21 16:25 Сейчас в теме
72. FReIM 9 13.07.21 10:56 Сейчас в теме
А исходный код обработки есть?
Просто чтобы отделу информационной безопасности его предоставить.
Или хоть что-нибудь что сможет их убедить что это не бекдор.
73. SerVer1C 1146 13.07.21 14:22 Сейчас в теме
(72) Движок компоненты без исходников. Как вы их убедили, что в 1с и windows нет бэкдоров ?
74. FReIM 9 13.07.21 16:47 Сейчас в теме
(73)
Никак. Но им нужна бумажка прикрыть свои задницы.
Это было бы смешно, если бы не было так грустно.
Тут еще одельная статья покупки через инфостарт чего-либо за деньги, наш юр отдел это будет полгода согласовывать в результате выдаст что договор нам не подходит и в последствии только через санкции директора купим. Как-то так и живем.
116. stepan_s 22.02.22 10:43 Сейчас в теме
(72)ну про исходники понятно, а вот порядок использования... Вот есть у меня конвертер. Как частное лицо я его получил и использую. Но вот компания хочет применить себе... как это правильно использовать?
117. SerVer1C 1146 22.02.22 10:52 Сейчас в теме
75. olezhanchik 28.07.21 13:30 Сейчас в теме
Добрый день!

Использую вашу разработку. Появилась необходимость указывать глубину цвета при сохранении PDF в картинки (PNG и JPG). Есть ли возможность добавить такой параметр?
76. SerVer1C 1146 28.07.21 16:17 Сейчас в теме
(75) Здравствуйте! Учту в следующей версии.
77. m1_1976 13 03.08.21 08:27 Сейчас в теме
Вроде завелось. Будем мучить ее... Спасибо.
SerVer1C; +1 – Ответить
80. user1296085 04.08.21 17:10 Сейчас в теме
Добрый день. А есть возможность запретить редактирование, но оставить возможность печати?
81. SerVer1C 1146 04.08.21 21:01 Сейчас в теме
(80) Добрый день! В данной версии нет, но в будущем реализую.
82. user1296085 09.08.21 18:20 Сейчас в теме
(81) А есть возможность реализовать это в ближайшее время?
83. SerVer1C 1146 09.08.21 18:36 Сейчас в теме
(82) Да, по мере свободного времени уже вношу доработки.
87. Igorjastiy 11.08.21 22:31 Сейчас в теме
Добрый день.
Не планируете ли вы к компоненте добавить функционал для работы с qr-кодом? Интересует чтение и распознавание.
Спасибо за компоненту, очень проста и функциональна.
90. SerVer1C 1146 12.08.21 10:57 Сейчас в теме
(87) Такое пока не планировал. Не вижу связи PDF и QR-кодов. Вы хотите коммунальные платежки загружать в 1С ?
92. Igorjastiy 12.08.21 11:19 Сейчас в теме
(90) Нет, обрабатывать возвращаемые документы оригиналы, при печати помещаем QR-код с инф. о документе. Когда документы возвращаются, пользователь сканирует(на данный момент со сканером ШК), по УИН и доп информации, находим документ, устанавливаем признак оригинал и проверяем на изменения. Хотелось бы упростить работу, забрать с каталога PDF, распознать Qr-коды, проверить, обработать и прикрепить файлы к документам(Без парсинга).
88. Igorjastiy 12.08.21 10:49 Сейчас в теме
Добрый день, обнаружилась проблема при обращении к функции PDF2IMG.
Если указываю файл размером более 24Мб , компонента грохает 1С.
ошибка:
Имя сбойного приложения: 1cv8.exe, версия: 8.3.17.1851, метка времени: 0x5fb42a15
Имя сбойного модуля: Pdfium.dll, версия: 0.0.0.0, метка времени: 0x5ac96ab9
Код исключения: 0xc0000409
Смещение ошибки: 0x0095cae0
Идентификатор сбойного процесса: 0x71f8
Время запуска сбойного приложения: 0x01d78f45fd1d458a
Путь сбойного приложения: C:\Program Files (x86)\1cv8\8.3.17.1851\bin\1cv8.exe
Путь сбойного модуля: C:\Program Files (x86)\ArrowPDF\x86\Pdfium.dll
Идентификатор отчета: 904ed298-6bcf-44df-89bf-55761f433034
Полное имя сбойного пакета:
Код приложения, связанного со сбойным пакетом:
С чем может быть связано?
89. SerVer1C 1146 12.08.21 10:50 Сейчас в теме
(88) Вы уверены, что это из-за размера? Я тестировал на файлах 100+ Мб. (см. коммент #56) Проверьте на другой версии платформы.
91. Igorjastiy 12.08.21 11:12 Сейчас в теме
(89) На 100 процентов нет, но тестировал файлы с одного сканера с разными вариантами.
1) 200 страниц 23мб.
2) 170 страниц 25мб.
На втором файле 1С крашится. Может проблема кроется в формате файла.
Платформа стабильная, вылетов не наблюдал ранее. Попробую PDF со стороннего ресурса.
93. Igorjastiy 13.08.21 13:31 Сейчас в теме
(89) Проблема была в формате, указали в настройках МФУ другой стандарт PDF, большие файлы проходят теперь без ошибок.
Еще вопрос в догонку, у компоненты нет функции, возвращающей количество страниц в файле?
94. SerVer1C 1146 13.08.21 19:48 Сейчас в теме
(93) Почти готова версия 1.6, в которой это будет.
95. hottion 89 27.08.21 14:37 Сейчас в теме
Выдает ошибку Не удалось найти часть пути "C:\Users\******.pdf".


необходимо явно указать пользователя для запуска компоненты в приложениях COM+, но не получается найти компоненту.
Как она называется в "Службах компонентов" WIndows?
97. SerVer1C 1146 30.08.21 21:44 Сейчас в теме
(95) В службах компонентов она не отображается. Но можете увидеть её по имени "ArrowPDF.Converter", получив список COM компонент с помощью PS скрипта:
gci HKLM:\Software\Classes -ea 0| ? {$_.PSChildName -match '^\w+\.\w+$' -and (gp "$($_.PSPath)\CLSID" -ea 0)} | ft PSChildName
99. hottion 89 31.08.21 11:56 Сейчас в теме
(97) Спасибо.
Решили проблему, у пользователя 1с и вправду не было прав на каталог.
96. FReIM 9 27.08.21 15:05 Сейчас в теме
Добрый день.
При конвертации pdf в Jpg
В результат выдает:
Absolute path information is required.
Код:
ПутьКФайлу=Выборка.ПутьКФайлу;
				ПутьКФайлу="C:\Temp\Азопирам-К Эоми ТЕСТ (ВИНАР).pdf";
				Файл = новый Файл(ПутьКФайлу);
				Если  Файл.Существует() тогда
					Если Найти(ПутьКФайлу,".pdf")>0 тогда
						Конвертер = Новый COMОбъект("ArrowPDF.Converter");
						Папка="С:\Temp\Images";
						Конвертер.ImgFormat="JPG";
						// размеры изображений
						Конвертер.ImgWidth = 4000;
						Конвертер.ImgHeight = 6000;
						// разрешающая способность
						//Конвертер.ImgDpiX = 1200;
						//Конвертер.ImgDpiY = 1200;
						Результат = Конвертер.PDF2IMG(ПутьКФайлу, Папка);
						Если НЕ ПустаяСтрока(Результат) Тогда
							Сообщить(Результат);
						КонецЕсли;
					КонецЕсли;
				КонецЕсли;
Показать
98. SerVer1C 1146 30.08.21 21:51 Сейчас в теме
(96) Код у вас правильный. Скорее всего, PDF-файл какой-то проблемный...
100. FReIM 9 13.09.21 10:37 Сейчас в теме
(98)
А код обязательно должен быть на клиенте? Или можно на сервере?
Я на сервер компоненту поставил, и на сервере код выполняется.
Что в модуле объекта что с директивой &НаСервере.
Название файла может быть ни кириллице?
101. FReIM 9 13.09.21 11:10 Сейчас в теме
На другом сервере выдают такую ошибку
"The given path's format is not supported."
102. FReIM 9 13.09.21 12:24 Сейчас в теме
Поменял имя файла на латиницу - заработало.
Но сразу обнаружился странный артефакт, при сохранении изображения, ландшафт портретом стал.
Хотя если убрать параметры, то уже нормально.

(101)
103. IceEvgen 23 05.10.21 12:37 Сейчас в теме
Подскажите, что не так??? Выдает ошибку: Данный формат пути не поддерживается.

Конвертер = Новый COMОбъект("ArrowPDF.Converter");

Исходный = "С:/Temp/Book.pdf";
Папка = "С:/Temp/Images";

Конвертер.PdfPages = "1"; // номера страниц через запятую

Конвертер.ImgFormat = "JPG"; // или "bmp", или "TiF", или "Png" (по умолчанию)

// размеры изображений
Конвертер.ImgWidth = 4000;
Конвертер.ImgHeight = 6000;

// разрешающая способность
//Конвертер.ImgDpiX = 1200;
//Конвертер.ImgDpiY = 1200;

Результат = Конвертер.PDF2IMG(Исходный, Папка);

Если НЕ ПустаяСтрока(Результат) Тогда
Сообщить(Результат);
КонецЕсли;
104. IceEvgen 23 05.10.21 13:00 Сейчас в теме
Все разобрался, извините, уже не актуально..
129. triviumfan 103 30.06.22 11:20 Сейчас в теме
(104) Зато для других актуально. Можно было и ответить в чем заключалась такая ошибка "Данный формат пути не поддерживается"
Прикрепленные файлы:
130. SerVer1C 1146 30.06.22 18:41 Сейчас в теме
(129) Проверьте наличие данных путей и их доступность (пути на сервере или на клиенте?)
131. triviumfan 103 01.07.22 16:12 Сейчас в теме
(130) проверял: через imagemagik работает, а через вашу компоненту - нет. пути на сервере
132. SerVer1C 1146 01.07.22 16:37 Сейчас в теме
(131) Если пути на сервере, то и компонента должна быть на сервере.
133. triviumfan 103 01.07.22 16:44 Сейчас в теме
(132) разумеется, она там =(
105. selena72 07.10.21 12:27 Сейчас в теме
Подскажите, пожалуйста, метод Protect() может устанавливает пароль на открытие файла? или только на изменение, а открыть pdf без ввода пароля можно?
106. SerVer1C 1146 07.10.21 14:19 Сейчас в теме
(105) метод Protect() может защитить только от изменения.
107. oleg1979 33 31.01.22 16:28 Сейчас в теме
Если PDF в ландшафте, то на выходе получаем JPG в портрете. Как сделать так, что бы конвертация была корректной относительно ориентации страниц PDF?
108. SerVer1C 1146 31.01.22 17:20 Сейчас в теме
(107) Задайте размер по высоте больше размера по ширине.
109. oleg1979 33 31.01.22 21:27 Сейчас в теме
(108) В файле PDF может быть страницы с разной ориентацией, поэтому выставление размеров некорректно.
110. oleg1979 33 31.01.22 21:38 Сейчас в теме
(108) Кроме того, предполагается, что на вход компоненты поступает файл с изначально неизвестной ориентацией страниц и хотелось бы что бы компонента автоматически определяла её, а затем уже конвертировала в jpg.
111. SerVer1C 1146 31.01.22 22:55 Сейчас в теме
(110) Учту в новой версии.
112. sergivanov 10 10.02.22 15:38 Сейчас в теме
Вопрос в следующем. jpg сформировался на диск но при помещении во временное хранилище проблема. Я думаю , что файл какой то нестандартный получается. FF D8 FF E0 00 10 4A 46 49 46 00 01 01 01 00 60 00 60 00 00 FF DB 00 43 00 08 06 06 07 06 05 08 07 07 07 09 09 08 0A 0C 14 0D 0C 0B 0B 0C 19 12 13 0F 14 1D 1A 1F 1E 1D 1A 1C 1C 20 24 2E 27 20 22 2C 23 1C 1C 28 37 29 2C 30 31 34 34 34 1F 27 39 3D 38 32 3C 2E 33 34 32 FF DB 00 43 01 09 09 09 0C 0B 0C 18 0D 0D 18 32 21 1C 21 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 FF C0 00 11 08 07 D0 0F A0 03 01 22 00 02 11 01 03 11 01 FF C4 00 1F 00 00 01 05 01 01 01 01 01 01 00 00 00 00 00 00 00 00 01 02 03 04 05 06 07 08 09 0A 0B FF C4 00 B5 10 00 02 01 03 03 02 04 03 05 05 04 04 00 00 01 7D 01 02 03 00 04 11 05 12 21 31 41 06 13 51 61 07 22 71 14 32 81 91 A1 08 23...
Конвертер = Новый COMОбъект("ArrowPDF.Converter");
			  Сообщить(Конвертер.Version());  			  
			  Исходный = ПутьКФайлу; 
			  Папка = стр; 			  
			  Конвертер.PdfPages = "1,2,3,4,5,8,16, 19 ,28 "; // номера страниц через запятую 			  
			  Конвертер.ImgFormat = "jpg"; // или "bmp", или "TiF", или "Png" (по умолчанию)			  
			  // размеры изображений
			  Конвертер.ImgWidth = 4000;
			  Конвертер.ImgHeight = 3000; 			  
			  // разрешающая способность
			  //Конвертер.ImgDpiX = 1200;
			  //Конвертер.ImgDpiY = 1200;
			  
			  Результат = Конвертер.PDF2IMG(Исходный, Папка);
			  Сообщить(Результат); 	
			  Если ПустаяСтрока(Результат) Тогда 
				  ИмяФайлаРезультата = НайтиФайлы(Папка,"*.jpg");
				  Для каждого н из ИмяФайлаРезультата Цикл  
					  ВложенияДок = Новый Структура;
					  ВложенияДок.Вставить("АдресВоВременномХранилище",ПоместитьВоВременноеХранилище(Новый ДвоичныеДанные(н.ПолноеИмя)));
					  Если Не ПустаяСтрока(ВложенияДок.АдресВоВременномХранилище) Тогда
						  Хранилище = ПолучитьИзВременногоХранилища(ВложенияДок.АдресВоВременномХранилище);
						  Если ТипЗнч(Хранилище) <> Тип("ДвоичныеДанные") Тогда
							  Результат = Хранилище.Получить();							  
						  Иначе
							  Результат = Хранилище.;
						  КонецЕсли; 
						  Область = Макет.ПолучитьОбласть("Изображение");		 
						  Рисунок = Область.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка); 
						  Рисунок.Высота = 297;
						  Рисунок.Ширина = 210;
						  
						  Рисунок.ГраницаСверху = Ложь;
						  Рисунок.ГраницаСнизу = Ложь;
						  Рисунок.ГраницаСлева = Ложь;
						  Рисунок.ГраницаСправа = Ложь;
						  Рисунок.РазмерКартинки = РазмерКартинки.АвтоРазмер;
						  Рисунок.Картинка = Новый Картинка(Результат);
						  Рисунок.Линия = Новый Линия(ТипЛинииРисункаТабличногоДокумента.НетЛинии);
						  ТабличныйДокумент.Вывести(Область);
					  КонецЕсли;	
					  Возврат ТабличныйДокумент;
Показать
113. SerVer1C 1146 10.02.22 16:22 Сейчас в теме
(112)
jpg сформировался на диск но при помещении во временное хранилище проблема. Я думаю , что файл какой то нестандартный получается.

во временное хранилище можно поместить любые двоичные данные.
114. sergivanov 10 10.02.22 22:14 Сейчас в теме
(113) Данный файл не помещается на картинку в табличный документ
115. SerVer1C 1146 10.02.22 22:42 Сейчас в теме
(114) Скорее всего, с конвертером это никак не связано.
118. rif-nrr 16 24.02.22 22:22 Сейчас в теме
Добрый день, скачал компоненту, не получается сделать водяной знак, прошу помочь разобраться.
На входе два ПДФ:
1. Прайс лист, сохраненный в pdf из 1С (на ПДФ файле при выделении таблица с колонками)
2. Водяной знак - pdf файл, сохраненный из 1с табличного документа с картинкой в середине листа.

При выполнении команды добавления водяного знака получается что водяной знак не видно совсем, он как-бы за таблицей прайса остается невидим. Как сделать чтобы водяной знак получился как водяной знак, то есть фоновым рисунком под таблицей?
119. SerVer1C 1146 25.02.22 10:40 Сейчас в теме
(118) Попробуйте сделать pdf с прайсом без текстового слоя, т. е. чтобы была монолитная картинка. Ещё вариант: попробуйте поменять местами параметры ИсходныйПДФ и ВодянойЗнак в методе AddWatermark().
120. rif-nrr 16 08.03.22 10:58 Сейчас в теме
(119) Спасибо за ответ, только увидел его. В общем так и сделал уже: пришлось разбирать ПДФ на картинки, наносить на каждую знак и потом склеивать обратно в ПДФ
121. Aspire1C 878 17.03.22 17:22 Сейчас в теме
Добрый день. Скачал вашу обработку. А можно как то отрезать пустую область листа?

Этими параметрами не получается:
Конвертер.ImgWidth = 6000;
Конвертер.ImgHeight = 4000;
122. SerVer1C 1146 17.03.22 17:32 Сейчас в теме
(121) Конвертер преобразовывает лист из pdf в графический формат целиком как есть. Воспользуйтесь любым графическим редактором.
123. Aspire1C 878 17.03.22 17:33 Сейчас в теме
(122) Это понятно, но мне надо автоматом. Думал вдруг есть какие то параметры... жаль
124. soi 202 08.04.22 08:53 Сейчас в теме
Добрый день,

При инициализации выводит ошибки:

2147221164(0x80040154): Класс не зарегистрирован
{ВнешняяОбработка.ТестКонвертерПДФ.Форма.Форма.Форма(5)}:Конвертер = Новый COMОбъект("ArrowPDF.Converter");
{ВнешняяОбработка.ТестКонвертерПДФ.Форма.Форма.Форма(29)}:ПодписатьНаСервере();

по причине:
-2147221164(0x80040154): Класс не зарегистрирован

или

2147221005(0x800401F3): Недопустимая строка с указанием класса
{ВнешняяОбработка.ТестКонвертерПДФ.Форма.Форма.Форма(5)}:Конвертер = Новый COMОбъект("ArrowPDF.Converter");
{ВнешняяОбработка.ТестКонвертерПДФ.Форма.Форма.Форма(29)}:ПодписатьНаСервере();

по причине:
-2147221005(0x800401F3): Недопустимая строка с указанием класса

ОС: Windows 7 Проф x64
1С:Предприятие 8.3 (8.3.20.1674)

Пробовал разворачивать и 32х и 64х версии PDFКонвертера
Пробовал запускать 1С как x32 так и x64

Результат одинаковый - с ошибкой.
Прошу помочь в решении проблемы.
125. soi 202 08.04.22 09:09 Сейчас в теме
126. Natuseeq 13.05.22 11:38 Сейчас в теме
Добрый день! Инициализирую компоненту в общем модуле. При вызове gettext() текст преобразования пустой, а в Pdf файле есть данные. В чем может быть причина? Помогите, пожалуйста
Прикрепленные файлы:
127. SerVer1C 1146 14.05.22 19:46 Сейчас в теме
(126) Скорее всего pdf не содержит текстового слоя.
134. triviumfan 103 05.07.22 14:15 Сейчас в теме
(127) Снова вернулся к это компоненте - теперь получаю "В GDI+ возникла ошибка общего вида.". Вообще не информативная ошибка.
ЧЯДНТ?
я поставил х64, ошибок при создании обертки нету, версию пишет 1.5, но при конвертации выдавало сначала одну ошибку, теперь другую.
Я один такой что ли? Не работает ни на клиенте, ни на сервере.
135. SerVer1C 1146 05.07.22 14:52 Сейчас в теме
(134) Предлагаю вам проверить работоспособность компоненты на другой системе.
138. triviumfan 103 11.07.22 20:11 Сейчас в теме
(135) Проверил на локальном компе - та же ошибка, что и на рабочем сервере. Не знаю, что это за капризная компонента, но у меня она не работает на двух машинах)
Прикрепленные файлы:
139. SerVer1C 1146 11.07.22 22:36 Сейчас в теме
(138) Предлагаю скопировать путь из проводника, либо написать его вручную посимвольно. Возможно, что-то из-за кодировок расходится... А лучше создайте новый каталог (чтобы весь путь был на латинице) с доступом 1с-ному процессу.
-----
Воспроизвел вашу ошибку, написав имя диска <Ц> как "С" русская. Проблема на вашей стороне...
140. triviumfan 103 12.07.22 09:08 Сейчас в теме
(139)
А лучше создайте новый каталог (чтобы весь путь был на латинице) с доступом 1с-ному процессу.

я ведь скопировал ваш код из публикации + вставил СоздатьКаталог(), показав, что путь реален и подкаталог был создан.
Но вы оказались правы - в публикации как раз русская "С" :D
141. SerVer1C 1146 12.07.22 10:11 Сейчас в теме
128. triviumfan 103 30.06.22 11:10 Сейчас в теме
@SerVer1C, добрый день. А можно ли взять одну лишь dll, запихнуть её в макет и регистрировать из 1с, если потребуется?
В общем, по феншую можно сделать или установщик msi не только регистрирует библиотеку. Мне нужна лишь dll без всяких установщиков.
136. SerVer1C 1146 05.07.22 15:02 Сейчас в теме
(128) COM dll зависит от двух дополнительных dll . Инсталлятор располагает библиотеки в нужных местах и регистрирует COM-компоненту.
137. triviumfan 103 05.07.22 15:49 Сейчас в теме
(136) может мне вручную их зарегать? C:\Program Files\ArrowPDF\ itextsharp.dll, PdfiumViewer и ArrowPDF?
Попробовал на локальном компе - тут вообще регистрация не проходит (класс не зарегистрирован). А что регать - не понятно. Запускал под админом. Хоть бы инструкция была для ручной регистрации
154. Diyversus 28.06.23 16:55 Сейчас в теме
(137) Класс не зарегистрирован - у меня была такая ошибка, когда я устанавливал Arrow PDF х-64 , а платформа была х-32. Не верно понял назначение установщиков.
После установки Arrow pdf х-32 ком-коннектор стал нормально создаваться.
142. user1718284 28.11.22 17:59 Сейчас в теме
Добрый день.
Подскажите пожалуйста, можете добавить в вашу библиотеку метод для наложения водного знака с точки зрения планов "на оборот"?
Т.е. если файл будет одной страницей, то Результат = Конвертер.AddWatermark(ВодянойЗнак, ИсходныйПДФ, НовыйПДФ);

Или в кратце описать как можно пересобрать ваш dll.

А то мне кажется, что дробить и пересобирать pdf не совсем правильное решение.

P.S. Также кажется что для полного комплекта вам нужен метод, который возвращает количество страниц.
Спасибо.
143. SerVer1C 1146 28.11.22 22:11 Сейчас в теме
(142) Не совсем понял, что вы хотите сделать. Про кол-во страниц отметил у себя.
144. user1718284 29.11.22 01:12 Сейчас в теме
(143)
Я формирую штамп на документ, с помощью табличного документа 1С. Далее сохраняю табличный документ в PDF.

Потом накладываю этот PDF по вашей инструкции.

Результат = Конвертер.AddWatermark(ИсходныйПДФ, ВодянойЗнак, НовыйПДФ);


Но если документ состоит из сканируемых страниц, то штам не видно. Он находится за кратинкой.
Но если я меняю водяной знак и исходный ПДФ местами, то видно.

По этому вопрос, можете ли вы доработатать и сделать отдельный метод?
145. DrWeb3 79 13.06.23 16:19 Сейчас в теме
Добрый день. Благодарю за полезную компоненту. Скачал, установил, всё работает.

Вопрос, может ли компонента обрезать полученную картинку по размерам изображения. Конвертирую с её помощью небольшой отчет, по высоте с пол страницы, по ширине 2/3 страницы. Соответственно возникают лишние белые поля. Можно как-то от них избавиться с помощью настроек?
146. SerVer1C 1146 13.06.23 16:23 Сейчас в теме
(145) Здравствуйте! С помощью данной компоненты - нет. Используйте для подобных целей любой графический редактор или встроенный в 1С (с 8.3.14+) объект ОбрабатываемаяКартинка.
147. DrWeb3 79 13.06.23 16:26 Сейчас в теме
(146) Да, спасибо, графическим редактором то я пользоваться умею. Хотел как-то научить этому 1С, чтобы потом слать полученную картинку пользователям в телегу. Но ответ понял )

Не в курсе есть ли какая-нибудь внешняя компонента реализующая подобное или в целом возможность редактирования изображений?
148. SerVer1C 1146 13.06.23 16:27 Сейчас в теме
(147) добавил в предыдущее сообщение - можно сделать с помощью "ОбрабатываемаяКартинка".
149. DrWeb3 79 13.06.23 16:47 Сейчас в теме
(148)
ОбрабатываемаяКартинка


Спасибо! Век живи, век учись )
150. Diyversus 20.06.23 17:09 Сейчас в теме
Теоретически можно поместить такую компоненту в бинарные данные, выгружать по необходимости и через Запустить() "просить" её делать, что надо?
151. SerVer1C 1146 20.06.23 17:31 Сейчас в теме
(150) Можно сделать всё, нельзя сделать всего.
152. Diyversus 28.06.23 16:15 Сейчас в теме
При попытке использовать метод "PDF2IMG"
Результат = Конвертер.PDF2IMG(Исходный, Папка);

Возвращает "отказано в доступе к папке(параметр "Исходный")

Давали все возможные права, запускали на разных компах - всё равно выдает отказ в доступе к папке.

Компонента хорошая, полезная, но как это обойти?
153. SerVer1C 1146 28.06.23 16:26 Сейчас в теме
(152) Посмотрите комментарии №№ 139, 140. Также надо понимать, откуда вы запускаете компоненту (с сервера или с клиента), если с сервера, то надо давать путь, видимый с сервера 1с и права на папку должны быть предоставлены пользователю, из-под которого запущена служба 1с.
155. Diyversus 28.06.23 16:59 Сейчас в теме
(153) Всё бы ничего, но пробовал на домашнем ПК (Windows 7 x64)
Учетка с админскими правами, у пользователя ОС, под которым работаю, есть доступ к папке.
Однако ловлю, указанную мной, ошибку
156. SerVer1C 1146 28.06.23 17:05 Сейчас в теме
(155) однозначно, вы что-то делаете не так. Посмотрите внимательно пример в публикации. Укажите ТОЧНЫЕ пути к PDF файлу и папке.
157. Diyversus 28.06.23 17:10 Сейчас в теме
(156) Для исключения человеческого фактора, путь копировал из проводника.
Прикрепил скриншот, на нём - показано, что на папку, в Разрешениях, предоставлены полные права. np300 - пользователь ОС, под которым работаю,
Пользователь np300 относится, как к администраторам, так и к пользователям. для обоих случаев к папке даны полные права.
Попробую запустить 1С от имени администратора. Уже не знаю , что еще можно проверить.

В режиме отладки копировал из переменных пути и переходил по ним в проводнике, т.е. пути указаны верно
Прикрепленные файлы:
158. SerVer1C 1146 28.06.23 17:14 Сейчас в теме
(157) Давайте ваш код на 1с в студию.
159. Diyversus 28.06.23 17:16 Сейчас в теме
(158) Простая проба компоненты
Процедура ВыгрузкаИзображений()
	Конвертер = Новый COMОбъект("ArrowPDF.Converter");
	Сообщить(Конвертер.Version);
	Исходный = "D:\temp\Input";
	Папка = "D:\temp\Output";
	
	Конвертер.PdfPages = "*"; // номера страниц через запятую
	
	Конвертер.ImgFormat = "png"; // или "bmp", или "TiF", или "Png" (по умолчанию)
	
	// размеры изображений
	Конвертер.ImgWidth = 4000;
	Конвертер.ImgHeight = 6000;
	
	// разрешающая способность
	Конвертер.ImgDpiX = 1200;
	Конвертер.ImgDpiY = 1200;
	
	Результат = Конвертер.PDF2IMG(Исходный, Папка);
	
	Если НЕ ПустаяСтрока(Результат) Тогда 
		Сообщить(Результат);
	КонецЕсли;	
КонецПроцедуры

Показать
160. SerVer1C 1146 28.06.23 17:19 Сейчас в теме
(159) А теперь возвращайтесь к публикации и читайте заново. Особенно описание метода PDF2IMG ["2) для конвертации страниц PDF в изображения:"]. Потом пробуйте опять, если не получается, снова возвращайтесь к чтению описания. И так в цикле до тех пор, пока не получится.
simuljakr; +1 – Ответить
161. Diyversus 28.06.23 17:27 Сейчас в теме
(159)
(160)
Не папка, а файл.
Благодарю ))
SerVer1C; +1 – Ответить
162. simuljakr 207 19.01.24 14:12 Сейчас в теме
Что-то не работает...
Компоненту установил, комп перезагрузил...
Но вот эта штука:

Результат = Конвертер.PDF2IMG(АдресФайлаНаКлиенте, АдресКартинки);


на выходе всегда выдает пустую строку.

Компоненту ставил 64-х битную...
Файл по указанному адресу - существует...

В конфигураторе
Конвертер = Новый COMОбъект("ArrowPDF.Converter"); 

- определяется как COM-объект...

Вот код:
Код


Что я делаю не так ?
164. SerVer1C 1146 19.01.24 14:45 Сейчас в теме
(162) см. 163
Если Результат пустой, то метод отработал корректно. Смотрите наличие графических файлов в указанной папке.
163. SerVer1C 1146 19.01.24 14:43 Сейчас в теме
(162) Проверяйте правильность путей (если компонента на сервере, то и пути должны быть относительно сервера)
165. simuljakr 207 19.01.24 14:47 Сейчас в теме
(164)
У меня сервер и клиент на одной машине.
Использовал КаталогВременныхФайлов()

Картинка
166. SerVer1C 1146 19.01.24 14:51 Сейчас в теме
(165) Если доступ на запись есть, то в папке должен появиться файл "[0]1.jpg"
167. simuljakr 207 19.01.24 15:11 Сейчас в теме
(166)
Да, появляется "1.jpg"
Но при этом метод все равно возвращает пустую строку....
168. SerVer1C 1146 19.01.24 15:14 Сейчас в теме
(167) В "Результат" возвращаются ошибки компоненты
simuljakr; +1 – Ответить
169. simuljakr 207 19.01.24 15:37 Сейчас в теме
(168) Аааааа....
А я-то думал - туда возвращается путь, по которому создался новый файл....
Получается, что конвертированный файл всегда будет создаваться с этим именем ?
170. SerVer1C 1146 19.01.24 15:41 Сейчас в теме
(169) Если укажете несколько страниц, то создадутся несколько файлов с именем по шаблону "[0]N.ext" - т.е. впереди лидирующие нули, если нужно, далее номер страницы и соответствующее расширение.
simuljakr; +1 – Ответить
173. Vegner 41 02.04.24 07:45 Сейчас в теме
(170) доброго времени суток.
а можно сделать, что бы создавался один файл, в котором будут все страницы файла pdf ?
174. SerVer1C 1146 02.04.24 09:08 Сейчас в теме
(173) Приветствую! Метод IMG2PDF() создает единый файл из нескольких изображений. Метод MergePDF() склеивает несколько PDF в единый файл.
175. Vegner 41 02.04.24 09:13 Сейчас в теме
(174) нет, я сохраняю табличный документ в pdf, потом конвертирую его в картинку и отправляю картинкой. в некоторых случаях табличный документ не помещается на одну страницу и в pdf сохраняет несколько страниц, в итогде получается количество картинок равное количеству страниц в файле pdf. а мне надо разместить все страницы фала pdf в одной картинке. такое возможно?
176. SerVer1C 1146 02.04.24 10:17 Сейчас в теме
(175) Нет. В PDF нет информации, что следующая страница является, например, продолжением таблицы из предыдущей страницы.
171. simuljakr 207 19.01.24 17:22 Сейчас в теме
А под Линукс есть рабочие варианты ?
172. SerVer1C 1146 19.01.24 21:53 Сейчас в теме
(171) Пока только идеи. Там же на плюсах надо писать...
simuljakr; +1 – Ответить
177. Kuzja_R 177 18.07.24 21:33 Сейчас в теме
Как вариант, Native компонета для конвертации PDF в картинку: https://infostart.ru/marketplace/2122606/
178. SerVer1C 1146 19.07.24 09:47 Сейчас в теме
(177) Шутите? Одна функция за такую цену??
179. Kuzja_R 177 19.07.24 10:17 Сейчас в теме
(178) , Кому-то дорого, кому-то нормально. Всё относительно.
181. akR00b 26 12.08.24 11:50 Сейчас в теме
(179) она же под Win? На Linux пробовали?
182. Kuzja_R 177 12.08.24 14:37 Сейчас в теме
(181) Да, под Win. Для Linux пока не планирую.
180. akR00b 26 12.08.24 11:48 Сейчас в теме
Поднимем тему, под Linux кто нибудь делал что нибудь для разбиения файла PDF на листы PNG|JPG? Ghostscript? Imagemagick?
183. akR00b 26 12.08.24 15:41 Сейчас в теме
В общем может кому пригодится, все просто. На Астре отлично работает.

//Ставим imagemagick
sudo apt-get install imagemagick

После в 1с одной строкой можем разбить ПДФ хоть на ПНГ хоть на ДЖПГ.
ЗапуститьПриложение("convert -density 100 /home/user/Desktop/ФайлПДФ.pdf /home/user/Desktop/ФайлПДФ.jpg");

Если пдф многостраничный то разделит его по маске "названиефайла+1.jpg"
184. antosha 18.12.24 22:14 Сейчас в теме
лююююдииии а где вы вообще нашли SetupArrowPDF.msi ??? весь инет перерыл - нету....
185. SerVer1C 1146 18.12.24 22:18 Сейчас в теме
(184) Вы не поверите: если скачать прикрепленный к этой публикации файл "ArrowPDF_1.5.7z" и распаковать его, то получите тот самый "SetupArrowPDF.msi" (и для x64, и для x86)
186. ytpyfqrf 5 14.03.26 18:37 Сейчас в теме
Где скачать SetupArrowPDF.msi без скачивания публикации?
Для отправки сообщения требуется регистрация/авторизация