Перейти к содержимому
getnextpdf.com

Сборник рецептов PHP

В этом индексе перечислены рецепты NextPDF для PHP: исполняемые страницы для конкретных задач, написанные непосредственно для основного PHP API. Основной репозиторий nextpdf хранит и проверяет каждый рецепт в каталоге docs/public/cookbook/php/. У каждого рецепта есть скрипт examples/*.php и тест-обвязка tests/Cookbook/Php/. Затем агрегатор переносит каждую страницу на этот сайт и сохраняет сведения о её происхождении.

Так как эта страница служит индексом, она не делает заявлений о поведении отдельных рецептов. В каждой строке указаны назначение рецепта, используемый основной модуль и заявленный профиль воспроизводимости. Профиль и любое заявление о соответствии относятся к странице самого рецепта. Они берутся из фронтматтера этой страницы и её теста в репозитории, а не из этого индекса. Сборник рецептов по интеграциям (фреймворк / рендерер / сервис) см. в разделе Сборник рецептов по интеграции. Контракт, которому следует каждый исполняемый рецепт, см. в разделе Соглашения о рецептах.

Каждый рецепт создаётся в основном репозитории в каталоге docs/public/cookbook/php/ и публикуется на этом сайте агрегатором. Для каждого слага действует одно соглашение: один сегмент.

/cookbook/php/<recipe>/

<recipe> называет назначение рецепта в kebab-case (например, render-html-to-pdf, а не имя модуля html). Он записывается строчными буквами, через дефис, без номеров версий и заканчивается одной завершающей косой чертой.

Каждый рецепт объявляет самый строгий профиль, которому он может честно соответствовать:

  • bitwise — побайтово идентичный между запусками (простое детерминированное содержимое с зафиксированной энтропией).
  • structural — идентичный после нормализации изменчивых атомов (/ID в трейлере, даты creation/modification, префиксы подмножеств шрифтов — на практике любой многообъектный PDF).
  • semantic — только эквивалентность структурного AST и метаданных (подписанный результат, результат с меткой времени или результат, эквивалентность которого по своей природе не может быть побайтово стабильной).

Страница рецепта подтверждает профиль своей тест-обвязкой. Этот индекс только сообщает значение, объявленное на той странице.

Создание документа, разбиение на страницы и стилизация.

РецептЧто он делаетМодульПрофиль
render-html-to-pdfОтрисовать HTML-документ как PDFHTMLструктурный (structural)
style-with-cssПрименить CSS к отрисовке HTMLHTMLструктурный (structural)
html-table-layoutРазметить HTML-таблицуHTMLструктурный (structural)
paginate-long-htmlРазбить длинный HTML-документ на страницыHTMLструктурный (structural)
paginate-large-html-tablesРазбить большую HTML-таблицу на несколько страницHTMLструктурный (structural)
render-rtl-arabic-htmlОтрисовать арабский HTML с письмом справа налевоHTMLструктурный (structural)
compose-text-and-fontsСкомпоновать текст с управлением типографикойТипографикаструктурный (structural)
embed-and-subset-fontsВстроить шрифты и создать подмножествашрифты (Font)структурный (structural)
cjk-vertical-writingНабрать текст CJK в режиме вертикального письмаТипографикаструктурный (structural)
multi-page-documentСоздать многостраничный документдокумент (Document)структурный (structural)
headers-and-footersДобавить колонтитулымакет (Layout)структурный (structural)

Работа с векторами, изображениями, слоями и координатным пространством.

РецептЧто он делаетМодульПрофиль
draw-vector-graphicsСоздать векторную графикуграфика (Graphics)структурный (structural)
gradients-and-transparencyПрименить градиенты и прозрачностьграфика (Graphics)структурный (structural)
embed-imagesВстроить растровые изображениясодержимое (Content)структурный (structural)
add-watermarks-and-backgroundsДобавить текстовые и графические водяные знаки или фоны на страницысодержимое (Content)структурный (structural)
cmyk-spot-color-and-icc-profilesСоздать готовый к печати вывод CMYK и плашечные цветацвет (Color)структурный (structural)
embed-file-attachmentsВстроить файлы и создать PDF-портфолиосодержимое (Content)структурный (structural)
optional-content-layersИспользовать необязательное содержимое (слои)графика (Graphics)структурный (structural)
transform-coordinate-spaceПреобразовать координатное пространствографика (Graphics)структурный (structural)

Добавление закладок, ссылок, аннотаций и полей AcroForm.

РецептЧто он делаетМодульПрофиль
bookmarks-and-tocСоздать закладки и оглавлениенавигация (Navigation)структурный (structural)
generate-dynamic-table-of-contentsСгенерировать динамическое оглавлениенавигация (Navigation)структурный (structural)
links-and-annotationsДобавить ссылки и аннотациинавигация (Navigation)структурный (structural)
generate-barcodesСгенерировать штрихкодыштрихкоды (Barcode)побитовый (bitwise)
gs1-composite-barcodesСгенерировать составные штрихкоды GS1 (носитель CC-C)штрихкоды (Barcode)структурный (structural)
fill-pdf-formЗаполнить форму AcroFormформы (Form)структурный (structural)
flatten-form-fieldsСвести поля формыформы (Form)структурный (structural)
form-field-validation-and-flatten-with-stateПроверить поля формы и свести их с сохранением состоянияформы (Form)структурный (structural)

Настройка метаданных и поведения средства просмотра.

РецептЧто он делаетМодульПрофиль
set-document-metadataЗадать метаданные документаметаданные (Metadata)структурный (structural)
set-viewer-preferencesЗадать настройки средства просмотрадокумент (Document)структурный (structural)

Сборка, разделение и оптимизация существующих документов.

РецептЧто он делаетМодульПрофиль
merge-external-pdfsОбъединить внешние PDF или добавить страницыдокумент (Document)структурный (structural)
split-and-extract-pagesРазделить PDF и извлечь диапазоны страницдокумент (Document)структурный (structural)
optimize-pdf-file-sizeУменьшить размер PDF-файла с помощью сжатия и создания подмножествдокумент (Document)структурный (structural)

Использование шифрования, подписания, доступности и вывода по профилю. Эти рецепты сохраняют различия support≠conformance и presence≠validity на странице рецепта.

РецептЧто он делаетМодульПрофиль
encrypt-aes256Зашифровать с помощью AES-256 и задать флаги разрешенийБезопасностьструктурный (structural)
encrypt-with-permissionsЗашифровать с флагами разрешенийБезопасностьструктурный (structural)
sign-pades-b-bПрименить подпись PAdES (B-B и B-T)Безопасностьсемантический (semantic)
inspect-existing-signatureПроверить существующую подписьинспекция (Inspect)семантический (semantic)
tagged-pdf-ua2Вывести теговую структуру для PDF/UA-2Доступностьсемантический (semantic)
accessible-pdfua2-from-htmlВывести теговую структуру для создания доступного PDF/UA-2 из HTMLДоступностьсемантический (semantic)
pdf-a-4-outputСоздать вывод PDF/A-4Соответствиесемантический (semantic)
pdfa4-conformance-gateСоздать вывод PDF/A-4 и добавить контроль через внешний валидаторСоответствиесемантический (semantic)
validate-conformanceПроверить соответствие профилюсоответствие (Compliance)семантический (semantic)

Чтение содержимого и структуры обратно из PDF.

РецептЧто он делаетМодульПрофиль
extract-text-contentИзвлечь текстовое содержимоетекст (Text)семантический (semantic)
multilingual-copy-paste-extractionОбеспечить корректное копирование текста из PDF на CJK и арабскомтекст (Text)структурный (structural)
parse-and-inspect-pdfРазобрать и проверить PDFинспекция (Inspect)семантический (semantic)
inspect-layout-boxesПроверить блоки макетаинспекция (Inspect)семантический (semantic)

Применение паттернов, которые охватывают несколько модулей.

РецептЧто он делаетОхватПрофиль
worker-safe-batch-renderingБезопасно выполнять отрисовку в долгоживущем воркере (общие реестры, ограниченная память)ядро · производительность · поддержка (Core · Performance · Support)семантический (semantic)
streaming-and-memoryПрофилировать потоковую передачу и использование памятипроизводительность (Performance)побитовый (bitwise)
exception-aware-error-handlingОбрабатывать ошибки с помощью иерархии исключений NextPDFисключения · контракты (Exception · Contracts)структурный (structural)
custom-error-recovery-patternsРеализовать собственные стратегии восстановления после ошибок и повторных попытокисключения (Exception)семантический (semantic)
observe-with-opentelemetryНаблюдать за отрисовкой с помощью OpenTelemetryнаблюдаемость · телеметрия · события (Observability · Telemetry · Event)семантический (semantic)

Каждый рецепт выше публикуется с поддерживающим скриптом examples/*.php и тест-обвязкой tests/Cookbook/Php/ в основном репозитории. Когда новый рецепт создаётся в вышестоящем репозитории, он появляется здесь, как только готовы его пример и тест.