Можно ли манипулировать PDF-файлами в Visual Basic без внешней библиотеки / SDK? - PullRequest
0 голосов
/ 25 октября 2018

Я смотрю, как реализовать слияние PDF с необработанным кодом VB, чтобы бот мог вызывать его для автоматизации бизнес-процессов.

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

Все исследования, которые я провел до сих пор, указывают мне в направлении внешних пакетов, которые мне нужно установить, таких как iText;это то, чего я хочу избежать.

1 Ответ

0 голосов
/ 26 октября 2018

(предыдущий сотрудник iText здесь)

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

Каждый объект получает номер.Объектам разрешено ссылаться друг на друга (фрагмент текста может сказать: «Я хочу быть отображенным со шрифтом 4433»)

Все номера объектов и их байтовое смещение в файле собраны в перекрестной ссылке (часто называемой XREF)таблица.

PDF включает в себя объект словаря «Страницы», который сообщает зрителю, к какому объекту относится данная страница.

Чтобы объединить PDF-файлы, вам необходимо:
-прочитать все таблицы XREF всех файлов
- настроить все из них на правильное смещение байта
- обновить различные объекты словаря в файле PDF, которые сообщают ему, где хранятся все объекты на странице

Этоэто ни в коем случае не тривиальная задача, но она может быть выполнена с использованием только VB.

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

...