PDFium Delphi Component Кратко
| Продукт | PDFium Delphi Component — профессиональный SDK для PDF-приложений с исходным кодом для Delphi, C++Builder и Lazarus |
|---|---|
| Лучше всего подходит для | Выпуска высокопроизводительных PDF-читалок, инструментов рецензирования, документных workflow и доступных сред чтения в нативных приложениях |
| Поддержка IDE | Delphi и C++Builder от XE5 до 13.1 Florence (Win32, Win64); Lazarus / Free Pascal LCL |
| Роль движка | PDFium — семейство движков с открытым исходным кодом, лежащее в основе отображения PDF в Chromium, — отвечает за рендеринг страниц и чтение документов; опциональные runtime-библиотеки V8 / XFA |
| Уровень приложения | 115 000 строк Object Pascal в 55 модулях, 475 публичных членов TPdf и 152 у TPdfView, включая слои просмотра, сериализации, подписи, шифрования, соответствия стандартам и доступности, которых нет в PDFium |
| Цифровые подписи | Подписание PAdES B-B / B-T / B-LT / B-LTA (ETSI EN 319 142-1), контейнеры CMS / CAdES, метки времени RFC 3161, Document Security Store |
| Шифрование | Поддержка записи AES-256 для PDF 2.0 (ISO 32000-2), ISO/TS 32003 AES-GCM, ISO/TS 32004 PDF MAC на основе собственного стека AES / SHA / HMAC / ASN.1 на чистом Pascal |
| Стандарты | Валидаторы PDF/A (части 1-4), PDF/X (до X-6), PDF/UA, PDF/E, PDF/VT (до VT-2s), PDF/R с сохранением и вставкой маркеров |
| Вывод PDF | Собственный сериализатор: линеаризованный Fast Web View, упаковка в object stream и xref stream, инкрементальные ревизии изменённых объектов, проверенные восстановленные копии |
| Ресурсы для читалок | 34 готовых к запуску проекта: эталонные реализации профессиональных читалок, лаборатории взаимодействия, стенды доступности, инструменты соответствия стандартам и preflight, лаборатории текста CJK и RTL |
| Большие файлы | Доступ по требованию исключает предварительную полную загрузку в память для многогигабайтных документов; параллельный рендеринг страниц и ограниченное рабочее хранилище |
| Исходный код | Полный исходный код на Object Pascal включён в каждую лицензию |
| Лицензирование | Без роялти, разовый платёж $350-$4200 в зависимости от уровня; продление за 40% от прайсовой цены |
| Текущая версия | 3.51.0 (2026-08-16) |
| Оценочная версия | Скачать бесплатный демо-пакет |
Нативный просмотр PDF и документооборот для Delphi
Где заканчивается движок и начинается продукт
PDFium — это рендерер. Он рисует страницы, извлекает текст и читает уже существующие структуры — и этим всё исчерпывается. В нём нет подписи, нет записи шифрования, нет валидатора стандартов, нет линеаризатора, нет записи инкрементальных ревизий и нет поддержки XFDF или XMP. Биндинг C API PDFium наследует ровно эти ограничения.
PDFium Delphi Component поставляется примерно со 115 000 строк Object Pascal в 55 модулях. Более 62 000 из этих строк приходятся на 36 модулей, у которых вообще нет аналога в API PDFium — криптография, подписи, шифрование, шесть валидаторов стандартов, сериализатор PDF, XFDF, XMP, разметка и shaping текста. Всё написано на Pascal, сверено с опубликованными пунктами ISO, ETSI, IETF и FIPS и передаётся в исходном коде с каждой лицензией.
| Возможность | Движок PDFium | Реализовано в PDFium Delphi Component |
|---|---|---|
| Цифровые подписи | Только читает уже существующие словари подписей | Подпись PAdES B-B / B-T / B-LT / B-LTA, CMS / CAdES SignedData по RFC 5652, клиент меток времени RFC 3161, внедрение DSS и VRI, ключи Windows CNG (RSA-PSS, PKCS#1, ECDSA), удалённая подпись и подпись в HSM, при которой закрытый ключ не покидает сервис, и проверка доверия к цепочке сертификатов |
| Шифрование | Открывает зашифрованные файлы; записывать шифрование не умеет | AES-256 по ISO 32000-2 (вывод ключа V5 / R6 по алгоритму 2.B), AES-GCM по ISO/TS 32003, PDF MAC по ISO/TS 32004 и полный проход шифрования потоков и строк |
| Криптографические примитивы | Ничего не предоставляет | AES-128/256 CBC и GCM, SHA-256/384/512, SHA-3, HMAC, чтение и запись ASN.1 DER на чистом Object Pascal, сверенные с тестовыми векторами FIPS 197 и FIPS 180-4 |
| Соответствие стандартам | Валидатора нет вообще | PDF/A части 1-4, PDF/X вплоть до X-6, PDF/UA-1, PDF/E-1, PDF/VT-1/2/2s, PDF/R-1 — валидаторы на уровне пунктов, внедрение маркеров и помощники сохранения с учётом профиля |
| Сериализация PDF | Одно последовательное сохранение файла целиком | Линеаризованный Fast Web View с hint-таблицами Приложения F, упаковка в object streams и xref streams, инкрементальные ревизии по изменённым объектам с побайтовым сохранением префикса и восстановительные копии, проверенные строгой загрузкой |
| Повреждённые документы | Тихое восстановление без отчёта | Строгая, совместимая и восстановительная политики загрузки со структурной диагностикой: путь перестроения, смещения повреждений, конфликтующие ревизии и состояние бюджетов |
| Обмен данными форм | Нет API XFDF или FDF | Импорт и экспорт XFDF (ISO 19444-1) и FDF для значений полей и 18 подтипов аннотаций |
| Метаданные | Читает классический словарь info | Чтение и запись пакетов XMP с типизированными контейнерами, которые используют все профили стандартов |
| Сеть и масштаб | Колбэки по диапазонам байтов и ничего сверх них | Прогрессивные сессии документа, приоритетный планировщик byte-range с дедупликацией, слиянием, ограниченными повторами и отменой, параллельный рендеринг страниц и ограниченное рабочее хранилище со сбросом во временный файл, удаляемый при закрытии |
| Уровень приложения | C-handleы и колбэки | Три зарегистрированных VCL / LCL-компонента, 475 публичных членов TPdf и 152 у TPdfView, состояние viewer, миниатюры, сессии чтения и 34 готовых к запуску проекта |
PDFium Delphi Component — набор компонентов PDFium с исходным кодом для Delphi, C++Builder и Lazarus, предназначенных для приложений, которым нужен быстрый просмотр PDF, растеризация страниц, потоковая загрузка, выделение текста, поиск, формы, аннотации, печать, preflight-отчеты и инспекция документов в нативном интерфейсе Windows.
Почти мгновенное открытие больших PDF: В практических тестах больших файлов PDF размером 2.x GB, где распространенные PDF-ридеры тратят 20–30 секунд до первого просмотра, в PDFium Delphi Component документ становится доступен почти сразу.
Используйте его, когда работа с PDF должна происходить внутри вашего приложения, а не во внешнем просмотрщике. Пакет включает визуальные и невизуальные компоненты, исходный код Object Pascal, демо-проекты, DLL PDFium, дополнительные V8 / XFA DLL, примеры командной строки для preflight, регрессионные тесты и документацию для интеграции viewer и низкоуровневых операций PDF.
PDFium VCL Component поддерживает Delphi XE5 – Delphi 13.1 Florence и C++Builder XE5 – C++Builder 13.1 Florence с целями Win32 и Win64. PDFium LCL Component включает файлы пакетов Lazarus / Free Pascal и демо для LCL.
Основные возможности
- Высокоуровневые API приложения: работайте с нативными для Delphi объектами документа и viewer вместо того, чтобы протягивать сырые handle-ы PDFium в каждый экран, фоновую задачу, сценарий форм и путь освобождения ресурсов.
- Viewer UI: добавьте
TPdfViewна форму — и получите zoom, поворот, режимы подгонки, одностраничные и непрерывные раскладки, обложки-развороты, тени страниц, безопасные клики по ссылкам, выделение текста, копирование в буфер и управление фокусом форм. - Навигация по миниатюрам: добавьте
TPdfThumbnailViewрядом с viewer для прокручиваемых миниатюр с подсветкой при наведении, выделении и переходом по клику. - Rendering: выводите страницы и тайлы в bitmaps, используйте zero-copy DIB-запись там, где это возможно, запускайте отменяемый прогрессивный рендеринг, рендерьте набор страниц параллельно через
RenderPagesParallel, обращайтесь к низкоуровневым Skia-хукам при наличии их в загруженной DLL и сохраняйте отзывчивость при работе с большими страницами. - Потоковая загрузка и большие файлы: загружайте из файла, памяти, массивов байтов или seekable-потоков с чтением PDFium по запросу — без предварительного копирования крупных или удалённо хранимых документов.
- Быстрый старт с большими файлами: начинайте просмотр многогигабайтных PDF, не дожидаясь полной предварительной копии в памяти; viewer использует seekable-доступ PDFium по требованию и читает блоки документа по мере необходимости.
- Текст и поиск: извлекайте текст страниц, ищите вперёд и назад, подсвечивайте совпадения, собирайте списки результатов по всем страницам и проверяйте прямоугольники символов, точки отсчёта, углы, сгенерированные символы, семейство шрифта, начертание, размер, ascent, descent и статус встраивания.
- Структурированный текст:
GetStructuredTextстроит иерархию страницы, блоков, строк и стилевых span-ов по геометрии символов, метаданным шрифтов, идентичности текстовых объектов и семантике Tagged PDF, с запасным порядком по физической раскладке, если тегов в документе нет. - Извлечение таблиц:
ExtractTablesиExtractDocumentTablesсочетают рамки слов с преобразованными линиями путей, чтобы находить таблицы с границами и таблицы, выровненные пробелами, сохраняют объединённые ячейки, оценивают уверенность, отмечают продолжения на следующих страницах и выводят CSV или JSON. - Семантический reflow в HTML:
BuildReflowDocumentпревращает PDF с фиксированной разметкой в переиспользуемое дерево узлов, безопасный HTML-вывод которого сохраняет заголовки, абзацы, списки, иллюстрации, разделы страниц и объединённые ячейки таблиц — для адаптивного отображения, доступности и повторного использования контента. - Формы: работайте с полями AcroForm, определяйте состояние XFA, проверяйте наличие V8 / XFA-хелперов, управляйте выделенным текстом форм, undo / redo, генерируемыми внешними видами, флагами полей и flatten.
- Обмен данными форм: экспортируйте и импортируйте XFDF (ISO 19444-1) и FDF (ISO 32000-1 §12.7.11) для значений полей и 18 подтипов аннотаций — форматы, для которых PDFium не даёт никакого API, реализованы на Pascal поверх собственной модели аннотаций и полей компонента.
- Интеграция OCR: подключите любой движок распознавания к
IPdfOcrProvider, получайте битмапы страниц в заданном пиксельном формате, возвращайте четырёхугольники слов — и компонент запишет слой поискового текста с отчётом статуса по страницам и пропуском страниц, где текст уже есть. - Аннотации и ссылки: создавайте, удаляйте, считайте и инспектируйте аннотации; обрабатывайте ссылки страниц, веб-ссылки, пункты назначения закладок, JavaScript-действия документа, риски URI / Launch и события клика в viewer.
- Сборка документов: создавайте документы, добавляйте и удаляйте страницы, импортируйте диапазоны страниц по метке или физическому индексу, перемещайте страницы, компонуйте N-up-страницы, повторно используйте страницы как Form XObject, добавляйте водяные знаки и штампы, обновляйте контент страниц и управляйте box-ами страниц.
- Вывод PDF и ревизии: сохраняйте линеаризованные файлы Fast Web View с hint-таблицами смещений страниц и общих объектов, упаковывайте объекты в object streams с полным покрытием xref типа 2, добавляйте инкрементальные ревизии по изменённым объектам, сохраняя предыдущий вывод байт в байт, и выпускайте восстановительные копии, повторно проверенные независимой строгой загрузкой перед передачей.
- Цифровые подписи: подписывайте на базовых уровнях PAdES B-B, B-T, B-LT или B-LTA; стройте CMS / CAdES SignedData с подписанными атрибутами, которые требует профиль; запрашивайте токены RFC 3161 у TSA; собирайте цепочку сертификатов в Document Security Store; добавляйте архивные метки времени; и проверяйте любой документ по пунктам PAdES и по доверию к цепочке сертификатов, синхронно или асинхронно.
- Удалённая подпись и HSM: разделите операцию надвое с помощью
PreparePadesRemoteSignatureиCompletePadesRemoteSignature— приложение готовит документ с placeholder и переносимый запрос на подпись с дайджестом SHA-256, удалённый сервис или аппаратный модуль возвращает отсоединённый CMS, а компонент его встраивает. Закрытому ключу не нужно попадать на рабочую станцию. - Шифрование и целостность: записывайте шифрование AES-256 из PDF 2.0 с корректным выводом ключа R6 и блоками разрешений, применяйте AES-GCM по ISO/TS 32003, когда это требуется, добавляйте токены PDF MAC по ISO/TS 32004 и опирайтесь на примитивы AES, SHA-2, SHA-3, HMAC и ASN.1, написанные на Object Pascal без внешних зависимостей на C.
- Инспекция контента и безопасности: извлекайте изображения, рендерьте битмапы объектов, инспектируйте границы и прозрачность объектов, читайте вложения, метаданные, подписи, разрешения, язык, метки страниц, режимы страниц, настройки viewer, структуру тегированных PDF и идентификаторы файла.
TPdfStreamInspectorдекодирует произвольные потоковые объекты под явными бюджетами на источник, сырые и декодированные данные, коэффициент распаковки и число потоков, поэтому бомба распаковки возвращает структурный статус, а не исчерпывает память. - Доступное чтение: стройте единицы чтения на уровне предложений, сопоставляйте озвученный текст с содержимым PDF, управляйте пословной подсветкой чтения, переходите по полям форм, изучайте тегированную структуру и применяйте битмап-преобразования для слабовидящих в сценариях вспомогательного чтения.
- Preflight-отчёты: генерируйте аудит-отчёты по стандартам с полями pass, action-required, review, приоритета, категории проблемы, счёта по категориям и следующего шага; экспортируйте читаемые человеком TXT, HTML и Markdown или машиночитаемые JSON, CSV, SARIF 2.1.0, JUnit XML и NDJSON; получайте стабильные отпечатки SHA-256; запускайте пакетные сводки; прикрепляйте отчёты к рецензируемым копиям; и блокируйте сборку по коду возврата консольного запускателя.
- Печать: печатайте с диапазонами страниц, количеством копий, параметрами масштаба, N-up-компоновкой, фильтрацией нечётных/чётных, оттенками серого, метаданными viewer preferences и
SetPdfPrintPaperHandlingDevModeдля дуплексной печати и работы с бумагой.
Workflow PDF, ориентированные на соответствие стандартам
PDFium Delphi Component предоставляет API проверки и сохранения, ориентированные на стандарты, для команд, которым нужна предсказуемая передача PDF, архивная проверка, печатные workflow, проверка доступности, инженерные документы, вывод переменных данных или растровая доставка.
| Workflow | Поддержка PDFium Delphi Component | Ответственность приложения |
|---|---|---|
| PDF/A | ValidatePdfA, SaveAsPdfA и PdfAConformance по частям 1-4 ISO 19005 — включая профили A-4 base, A-4f и A-4e на базе PDF 2.0 — с проверками OutputIntent, метаданных XMP, встраивания шрифтов, структуры RoleMap и ParentTree, пределов реализации Приложения C, ограничений на шифрование и JavaScript, а также помощниками сохранения с учётом профиля. | Выберите архивный уровень, предоставьте корректные метаданные и цветовые данные и разберите все сообщённые замечания до передачи. |
| PDF/X | ValidatePdfX, SaveAsPdfX и PdfXConformance от X-1a до X-6 на базе PDF 2.0, с обработкой OutputIntent и ICC, ограничениями прозрачности и цветовых пространств по профилю, проверками геометрии TrimBox / ArtBox / BleedBox и проверками безопасного для печати профиля. | Предоставьте подходящие для производства данные output intent, геометрию страницы и настройки печати для целевого профиля PDF/X. |
| PDF/UA | ValidatePdfUa, SaveAsPdfUa, PdfUaConformance, проверки языка и тегирования, анализ дерева структуры, проверка маркированного содержимого и валидация профиля доступности. | Создайте осмысленный порядок чтения, заголовки, списки, семантику таблиц, альтернативный текст и язык документа в исходном workflow. |
| PDF/E, PDF/VT, PDF/R | ValidatePdfE, ValidatePdfVT, ValidatePdfR, парные API SaveAs... и свойства соответствия для инженерных, переменных и растровых профилей PDF. PDF/VT охватывает иерархии DPart, метаданные частей документа и упаковку multipart MIME-потоков VT-2s; PDF/E внедряет встроенный output intent sRGB; PDF/R требует одно полосное изображение на страницу и разрешённый список кодировок. | Подберите профиль под бизнес-процесс и держите исходное содержимое в пределах набора возможностей, разрешённого выбранным стандартом. |
| Подписи PAdES | SignPades, SignPadesToStream, SignPadesBytes, SaveAsPadesDss и ValidatePadesCompliance покрывают базовые уровни B-B, B-T, B-LT и B-LTA по ETSI EN 319 142-1, с метками времени RFC 3161, внедрением Document Security Store, маркерами расширения ESIC и 26 кодами валидации на уровне пунктов. SignPadesWithPdfA объединяет архивную конвертацию и подпись в одном процессе. | Предоставьте сертификат подписи и его цепочку, выберите адрес TSA для уровней с меткой времени и определите политику хранения и отзыва в своей организации. |
| Автоматизация preflight | FPdfPreflightReport и PreflightReportCli сводят результаты PDF/A, PDF/UA, PDF/E, PDF/X, PDF/R и PDF/VT в читаемые человеком TXT, HTML и Markdown или машиночитаемые JSON, CSV, SARIF 2.1.0, JUnit XML и NDJSON с детерминированным порядком и стабильными отпечатками SHA-256. | Решите, должны ли статусы pass, action-required, review или число замечаний блокировать CI, поставку или приём в архив. |
Встроенные валидаторы фокусируются на проверках маркеров и отдельных file-level проверках. Для формальной content-level сертификации их следует дополнять специализированным валидатором.
Архитектура компонентов
TPdf: невизуальный компонент для загрузки, потокового доступа, сохранения, рендеринга, поиска, извлечения, валидации, доступа к формам, операций со страницами, метаданных, вложений, аннотаций, preflight-отчетов и workflow PDF-профилей.TPdfView: визуальный компонент для режимов отображения, взаимодействия с пользователем, ссылок, прокрутки, zoom, выделения, фокуса форм, подсветки, навигации по страницам и работы с буфером обмена.TPdfThumbnailView: прокручиваемая боковая панель миниатюр для навигации, отслеживания текущей страницы, обратной связи при наведении и компоновки рядом с viewer.- Вспомогательные модули: всего 55 модулей Object Pascal. Помимо биндинга движка они группируются в криптографию (
FPdfAes,FPdfAesGcm,FPdfSha256,FPdfSha512,FPdfSha3,FPdfHmac,FPdfAsn1), подпись (FPdfPades,FPdfCms,FPdfTsa,FPdfCryptoWin), стандарты (FPdfPdfa,FPdfPdfx,FPdfPdfua,FPdfPdfe,FPdfPdfvt,FPdfPdfr,FPdfPreflightReport), сериализацию и целостность (FPdfCompress,FPdfEncrypt,FPdfMac,FPdfStreamInspect,FPdfContentNormalize) и контентные сервисы (FPdfXfdf,FPdfXmp,FPdfLayout,FPdfMeasure,FPdfTextShaping,FPdfStructTree,FPdfAsync,FPdfMatrix).
Каждый модуль выше — это исходный код, который вы получаете и можете пройти отладчиком. Криптографические примитивы написаны на Object Pascal и сверены с опубликованными тестовыми векторами FIPS 197 и FIPS 180-4, поэтому подпись и шифрование не добавляют ни внешней C-библиотеки в развёртывание, ни стороннего бинарника в ваш аудит безопасности.
Скачать демо-пакет PDFium Delphi Component
2026-08-16 Version 3.51.0: PDFium Delphi Component примечания к выпуску | справочник API. Версия 3.51.0 делает публичными, как и задокументировано, восемь ранее недоступных членов TPdf и завершает англоязычный справочник: теперь у каждого публичного члена TPdf и TPdfView есть собственная страница — их получили 88 членов — вместе с перечислениями и записями, достижимыми из публичных сигнатур.
Лицензии и цены
Оплата кредитной/дебетовой картой, PayPal, AliPay или банковским переводом через 2Checkout. Каждая новая лицензия PDFium Delphi Component включает исходный код Object Pascal, один год обновлений и один год поддержки по email.
| Лицензия | Разработчики | Цена | Заказать |
|---|---|---|---|
| Single | 1 разработчик | $350 | Заказать |
| Small Business | до 10 разработчиков | $700 | Заказать |
| Medium Business | до 30 разработчиков | $1050 | Заказать |
| Enterprise | Все разработчики одной компании и её дочерних предприятий в пределах одной страны | $2100 | Заказать |
| Corporate | Все разработчики одной компании и её дочерних предприятий по всему миру | $4200 | Заказать |
Дополнительные исходники для Enterprise и Corporate: PDFium Delphi Component Enterprise и Corporate включают полный исходный код специализированного примера уровня инструмента PDF Intake & Accessibility Review Workbench Pro. Исходный код полных наборов внутренней проверки предоставляется по запросу.
Продление для существующих клиентов: 40% от полной цены, можно отменить в любой момент. Открыть страницу покупки и продления PDFium Delphi Component.
Включённые демо
Пакет включает готовые к запуску примеры для Delphi, C++Builder и Lazarus, охватывающие основные workflow, которые большинству команд нужно проверить перед интеграцией компонента в рабочее ПО.
- PdfViewer: полноценный viewer с выделением текста, поиском, закладками, навигацией по страницам, печатью, ссылками и режимами отображения.
- ViewerInteractionLab и SearchAndSelect: режимы отображения, режимы подгонки, цвета страниц, поворот, подсветка поиска, списки всех результатов, предпросмотр выделенного текста, копирование, очистка и маппинг координат.
- MultiPageViewer: непрерывный, разворотный, обложечный и многостраничный режимы viewer для приложений проверки документов.
- SplitView: два синхронизированных вида одного документа для workflow сравнения и рецензирования.
- ContentExtractionLab: единый workflow для метаданных, текста, объектов страниц, изображений, вложений, ссылок, аннотаций, закладок, шрифтов и метрик символов с экспортом TXT / JSON.
- PDFtoJpg, BatchExport и ImageToPDF: растровый экспорт, пакетная конвертация нескольких файлов, потоковая загрузка, управление DPI и качеством, ввод пароля, прогресс и совместная отмена.
- MergePDF, SplitPDF, CreatePDF и WatermarkStamp: сборка документов, программное создание PDF, водяные знаки Form XObject для повторного использования, угловые штампы и номера страниц.
- FormFill, FontProperties и Attachment: редактирование значений форм и flatten, инспекция шрифтов и символов по индексу, извлечение или создание встроенных файлов.
- SecurityAudit: инспекция только для чтения: разрешения, вложения, JavaScript, URI / Launch-ссылки, веб-ссылки, подписи, состояние XFA, доступность runtime-хелпера и аудит-отчёты TXT / JSON.
- XfdfLab и XfaLab: полный цикл обмена данными форм и аннотациями через XFDF и FDF, а также проверка определения состояния XFA с опциональным runtime с поддержкой V8 / XFA.
- CJKTextLab и RTLTextLab: работа с китайским, японским, корейским, арабским и ивритом — извлечение, поиск, геометрия выделения и поведение shaping в письменностях, где наивные допущения о порядке символов не работают.
- AnnotationsLab и NavigationLab: создание и редактирование разметочных аннотаций с геометрией quad points, а также шаблоны навигации по закладкам, пунктам назначения, именованным действиям и меткам страниц.
- AccessibilityWorkbenchCli и IntakeWorkbenchCli: headless-конвейеры проверки и приёма документов для пакетной оценки доступности и ввода файлов — для регламентных заданий и CI, а не для окна на рабочем столе.
- StandardsLab, PreflightReport и PreflightReportCli: workflow проверки и сохранения PDF/A, PDF/UA, PDF/E, PDF/X, PDF/R и PDF/VT, предпросмотр отчётов, экспорт TXT / HTML / Markdown / JSON / CSV, пакетная обработка папок, отсортированные сводки, уникальные имена отчётов, прикрепление отчётов и поведение
failon=для CI.
Почему команды выбирают PDFium Delphi Component
- Подпись и шифрование без второго поставщика: PAdES от B-B до B-LTA, метки времени RFC 3161 и шифрование AES-256 из PDF 2.0 входят в эту библиотеку. Большинство Delphi-команд решает эту задачу, добавляя отдельный SDK подписи или развёртывание OpenSSL; здесь это один пакет, одна лицензия и исходный код на Pascal, который можно проверить.
- Работа со стандартами, видная в коде: у шести семейств стандартов ISO есть настоящие валидаторы с кодами результата на уровне пунктов, а не галочка. Вывод preflight в TXT, HTML, Markdown, JSON и CSV напрямую встраивается в CI, а консольный запускатель возвращает код ошибки по выбранным вами условиям.
- Запись PDF, которой нет у движка: линеаризованный Fast Web View, упаковка в object streams и инкрементальные ревизии по изменённым объектам, сохраняющие предыдущий файл байт в байт — именно те форматы вывода, которые реально требуют архивные системы, веб-доставка и аудиторские следы.
- Нативная интеграция Delphi: настоящие VCL-компоненты с исходным кодом Object Pascal, а не элемент управления ActiveX или viewer в браузере.
- Враждебный ввод обрабатывается как враждебный: декодирование потоков, нормализация контента и сканирование структуры идут под явными бюджетами на источник, вывод, токены, глубину вложенности и коэффициент распаковки, поэтому испорченный или специально подготовленный PDF возвращает структурный статус, а не роняет процесс.
- Качество рендеринга PDFium: использует то же семейство open-source PDF-движков, что и отображение PDF в Chromium, при этом интеграция остаётся в вашей кодовой базе Delphi.
- Viewer и API в одном пакете: сочетание полноценного экранного viewer с низкоуровневым доступом к документам, поиском, формами, печатью, API валидации и возможностью создания preflight-отчётов.
- Без runtime-роялти: создавайте настольные приложения без платы за документ или конечного пользователя.
- Поддержка современных IDE: Delphi XE5 – Delphi 13.1 Florence, C++Builder XE5 – C++Builder 13.1 Florence и workflow Lazarus / Free Pascal с 32-битными и 64-битными сборками.
- Актуальное тестовое покрытие: тесты Delphi DUnitX, C++Builder GoogleTest и Lazarus FPCUnit покрывают основные workflow документа, рендеринга, форм, структуры, печати, миниатюр и viewer.
Онлайн-документация PDFium Delphi Component
Пример кода
procedure TForm1.OpenPdf(const FileName: string);
begin
Pdf.FileName := FileName;
PdfView.Pdf := Pdf;
PdfThumbnailView.Pdf := Pdf;
PdfView.DisplayMode := dmSingleContinuous;
PdfView.FitMode := pfmFitWidth;
PdfView.AllowUserTextSelection := True;
PdfView.Active := True;
end;
procedure TForm1.HighlightInvoiceNumber;
begin
Pdf.PageNumber := PdfView.PageNumber;
if Pdf.FindFirst('Invoice', []) >= 0 then
PdfView.HighlightSearchText('Invoice', False, False);
end;
procedure TForm1.SaveArchiveCopy(const OutputFile: string);
begin
if not Pdf.SaveAsPdfA(OutputFile, pac1b) then
raise Exception.Create('The PDF/A archive copy could not be saved.');
end;
procedure TForm1.SignForLongTermArchive(const OutputFile: string);
var
Options: TPadesSignOptions;
begin
Options := TPadesSignOptions.Default;
Options.CertificateThumbprint := SignerThumbprint;
Options.Level := plB_LTA; // подпись + токен TSA + DSS + архивная метка времени
Options.TsaUrl := 'https://tsa.example.com/tsr';
Options.Reason := 'Approved for release';
if not Pdf.SignPades(OutputFile, Options) then
raise Exception.Create('The document could not be signed.');
end;
procedure TForm1.CheckSignatureLevel;
var
Result: TPadesValidationResult;
begin
Result := Pdf.ValidatePades;
if Result.IsCompliantAt(plB_LTA) and Result.IsCryptographicallyValid then
ShowMessage(Format('%d signature(s), %d archive time-stamp(s), verified.',
[Result.SignatureCount, Result.DocTimeStampCount]))
else
ShowMessage('The document does not reach the required PAdES baseline.');
end;
Типичные сценарии использования
- Системы документооборота со встроенным просмотром PDF, поиском, печатью и workflow форм.
- Бухгалтерские и инвойсовые приложения, которым нужны просмотр PDF, извлечение, работа с вложениями, проверка готовности к архивации, пакетные preflight-манифесты и прикрепление отчётов.
- Юридическое, инженерное, медицинское и государственное настольное ПО, где пользователи должны инспектировать, печатать, валидировать, составлять отчёты и хранить PDF-документы, не покидая приложение.
- Сценарии с подписанными документами в регулируемых отраслях — договоры, счета, отгрузочные документы и записи, которые должны нести подпись PAdES B-T или B-LTA с доверенной меткой времени и оставаться проверяемыми годами.
- Конфиденциальная рассылка, требующая шифрования AES-256 из PDF 2.0 с заданными разрешениями, которое выполняет само приложение, а не внешний инструмент вторым проходом.
- Инструменты проверки соответствия и приёма файлов, которым нужны повторяемые маркерные проверки PDF/A, PDF/X, PDF/UA, PDF/E, PDF/R или PDF/VT перед передачей файлов во внешние валидаторы или архивные системы.
- Просмотрщики отчётов и внутренние бизнес-инструменты, которым нужен быстрый просмотр PDF, растеризация страниц, копируемый текст и контролируемая печать.
Когда выбирать этот продукт
- Выбирайте PDFium Delphi Component, когда приложение должно просматривать, проверять, подписывать, шифровать и выдавать PDF-документы: основа профессионального ридера, подпись PAdES, шифрование PDF 2.0, шесть валидаторов стандартов, линеаризованный и инкрементальный вывод, работа с большими файлами, доступность, формы и печать — всё в одном пакете с исходным кодом.
- Выбирайте HotPDF Component, когда приложение формирует документы и движок рендеринга лучше вообще не распространять: HotPDF несёт собственный рендерер, кодеки изображений, движок шрифтов, генерацию штрихкодов, раскладку XFA и проверку Factur-X и компилируется прямо в ваш исполняемый файл.
- Выбирайте PDF Library for Delphi, когда один набор инструментов должен закрыть весь жизненный цикл или когда нужны OCR, чтение штрихкодов, подпись аппаратным токеном PKCS#11, проверка по доверенным спискам ЕС или доступ через DLL / ActiveX / Dylib для вызовов не из Delphi.
Сравниваете всё семейство? Откройте обзор PDF-библиотек для разработчиков и сравните PDFium Delphi Component, losLab PDF Library и HotPDF Component рядом.
Частые вопросы
PDFium Delphi Component — это тонкая обёртка над DLL PDFium?
Нет. PDFium рендерит и читает; он не подписывает документы, не записывает шифрование, не проверяет стандарты PDF и не выдаёт линеаризованные, object-stream или инкрементальные ревизии. Более 62 000 из примерно 115 000 строк Object Pascal в пакете находятся в модулях, у которых нет аналога в API PDFium, и реализуют именно эти слои: подпись PAdES от B-B до B-LTA, криптографический стек AES / SHA / ASN.1 на чистом Pascal, шифрование AES-256 из PDF 2.0, шесть валидаторов стандартов ISO, собственный сериализатор PDF, XFDF, XMP, а также архитектура viewer, ридера и доступности.
Какой движок использует PDFium Delphi Component?
Он использует PDFium — семейство открытых движков, лежащее в основе показа PDF в Chromium. losLab создаёт вокруг него модель компонентов Delphi, архитектуру читателя, слой доступности, примеры, тесты и поддержку.
Может ли PDFium Delphi Component подписывать PDF-документы электронной подписью?
Да. Реализованы базовые профили PAdES B-B, B-T, B-LT и B-LTA по ETSI EN 319 142-1: построение CMS / CAdES SignedData по RFC 5652, запросы меток времени RFC 3161 к TSA, сбор цепочки сертификатов в Document Security Store и архивные метки времени. Ключи подписи используются через бэкенд Windows CNG с RSA-PSS, PKCS#1 или ECDSA. Сам PDFium умеет только читать уже существующие словари подписей.
Может ли он шифровать PDF-документы?
Да. SaveAsEncrypted записывает шифрование AES-256 по ISO 32000-2, включая вывод хеша пароля R6 по алгоритму 2.B, записи словаря /O /U /OE /UE /Perms и полное шифрование потоков и строк. Поддерживаются AES-GCM по ISO/TS 32003 и токены PDF MAC по ISO/TS 32004. Примитивы AES, SHA-256/384/512, HMAC и ASN.1 написаны на чистом Object Pascal без внешних зависимостей на C.
Поддерживаются Lazarus и Free Pascal?
Да. В пакет входят файлы пакетов Lazarus / Free Pascal и демонстрации LCL, а также VCL-компоненты для Delphi и C++Builder.
Насколько быстро открываются очень большие PDF?
Просмотрщик использует адресуемый доступ PDFium по требованию, а не полную предварительную загрузку. Файлы PDF размером 2.x GB могут стать пригодными к работе почти сразу.
Можно ли создавать или редактировать PDF-документы?
Поддерживается сборка документов: создание, добавление, удаление, импорт и перемещение страниц, компоновка N-up, водяные знаки, штампы и обновление содержимого.
Поддерживаются формы AcroForm и XFA?
Да. Поддерживаются поля AcroForm, фокус и выделенный текст, отмена и повтор, генерируемые представления, флаги полей, сведение и определение состояния XFA.
Какие стандарты PDF можно проверять?
Шесть семейств стандартов, у каждого свой валидатор и парный помощник сохранения или внедрения маркеров: PDF/A (ISO 19005, части 1-4, включая профили A-4 base/f/e на базе PDF 2.0), PDF/X (ISO 15930, включая X-6), PDF/UA (ISO 14289-1), PDF/E (ISO 24517-1), PDF/VT (ISO 16612-2, включая упаковку MIME-потоков VT-2s) и PDF/R (ISO 23504-1). Структура базовых уровней PAdES проверяется отдельно по ETSI EN 319 142-1. Отчёты preflight экспортируются в TXT, HTML, Markdown, JSON, CSV, SARIF 2.1.0, JUnit XML и NDJSON. Валидаторы покрывают пункты уровня маркеров и растущий набор пунктов уровня файла; если нужна формальная сертификация, дополните их выделенным движком валидации.
Есть ли лицензионные отчисления во время работы или плата за пользователя?
Нет. Лицензированные приложения распространяются без отчислений и без платы за каждый документ или конечного пользователя.
Что входит в лицензию и как работает продление?
Новая лицензия включает исходный код Object Pascal, один год обновлений и один год поддержки по email. Действующие клиенты продлевают доступ к обновлениям за 40% полной цены.
Узнайте больше о разработке PDF-компонентов и электронных таблиц Delphi
Подписаться на обновления продукта
Получайте последние обновления по электронной почте.
