Сборник рецептов PHP
Сборник рецептов для PHP
Заголовок раздела «Сборник рецептов для 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-документ как PDF | HTML | структурный (structural) |
style-with-css | Применить CSS к отрисовке HTML | HTML | структурный (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/ в основном репозитории. Когда новый рецепт создаётся в вышестоящем репозитории, он появляется здесь, как только готовы его пример и тест.
См. также
Заголовок раздела «См. также»- Сборник рецептов по интеграции — индекс интеграций с фреймворками, рендерерами и сервисами.
- Соглашения о рецептах — контракт, которому следует каждый исполняемый рецепт в этом сборнике.