PDFium SDK с исходным кодом

PDFium Delphi Component для Delphi, C++Builder и Lazarus

Встраивайте workflow PDFium VCL Component в приложения Delphi и C++Builder или workflow PDFium LCL Component в Lazarus/FPC, используя компоненты с исходным кодом для просмотра, рендеринга, форм, печати, preflight-отчетов и проверки по стандартам.

PDFium Delphi Component для Delphi — просмотрщик PDF

PDFium Delphi Component Кратко

ПродуктPDFium Delphi Component — профессиональный SDK для PDF-приложений с исходным кодом для Delphi, C++Builder и Lazarus
Лучше всего подходит дляВыпуска высокопроизводительных PDF-читалок, инструментов рецензирования, документных workflow и доступных сред чтения в нативных приложениях
Поддержка IDEDelphi и 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/AValidatePdfA, SaveAsPdfA и PdfAConformance по частям 1-4 ISO 19005 — включая профили A-4 base, A-4f и A-4e на базе PDF 2.0 — с проверками OutputIntent, метаданных XMP, встраивания шрифтов, структуры RoleMap и ParentTree, пределов реализации Приложения C, ограничений на шифрование и JavaScript, а также помощниками сохранения с учётом профиля.Выберите архивный уровень, предоставьте корректные метаданные и цветовые данные и разберите все сообщённые замечания до передачи.
PDF/XValidatePdfX, SaveAsPdfX и PdfXConformance от X-1a до X-6 на базе PDF 2.0, с обработкой OutputIntent и ICC, ограничениями прозрачности и цветовых пространств по профилю, проверками геометрии TrimBox / ArtBox / BleedBox и проверками безопасного для печати профиля.Предоставьте подходящие для производства данные output intent, геометрию страницы и настройки печати для целевого профиля PDF/X.
PDF/UAValidatePdfUa, SaveAsPdfUa, PdfUaConformance, проверки языка и тегирования, анализ дерева структуры, проверка маркированного содержимого и валидация профиля доступности.Создайте осмысленный порядок чтения, заголовки, списки, семантику таблиц, альтернативный текст и язык документа в исходном workflow.
PDF/E, PDF/VT, PDF/RValidatePdfE, ValidatePdfVT, ValidatePdfR, парные API SaveAs... и свойства соответствия для инженерных, переменных и растровых профилей PDF. PDF/VT охватывает иерархии DPart, метаданные частей документа и упаковку multipart MIME-потоков VT-2s; PDF/E внедряет встроенный output intent sRGB; PDF/R требует одно полосное изображение на страницу и разрешённый список кодировок.Подберите профиль под бизнес-процесс и держите исходное содержимое в пределах набора возможностей, разрешённого выбранным стандартом.
Подписи PAdESSignPades, 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 для уровней с меткой времени и определите политику хранения и отзыва в своей организации.
Автоматизация preflightFPdfPreflightReport и 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.

ЛицензияРазработчикиЦенаЗаказать
Single1 разработчик$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

Подписаться на обновления продукта

Получайте последние обновления по электронной почте.