Сборник рецептов 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 и метаданных (подписанный результат, результат с меткой времени или результат, эквивалентность которого по своей природе не может быть побайтово стабильной).
Страница рецепта подтверждает профиль своей тест-обвязкой. Этот индекс только сообщает значение, объявленное на той странице.
Рецепты, которые уже агрегируются
Заголовок раздела «Рецепты, которые уже агрегируются»Основной репозиторий уже хранит и объединяет эти пять рецептов: набор Wave 8.
| Рецепт | Что он делает | Модуль | Профиль |
|---|---|---|---|
sign-pades (запланировано в вышестоящем репозитории) | Применить базовую подпись CMS/PAdES с программным ключом | Безопасность | семантический (semantic) |
encrypt-aes256 (запланировано в вышестоящем репозитории) | Зашифровать с помощью AES-256 и задать флаги разрешений | Безопасность | структурный (structural) |
pdfa4-conformance-gate (запланировано в вышестоящем репозитории) | Создать вывод PDF/A-4 и добавить контроль через внешний валидатор | Соответствие | семантический (semantic) |
accessible-pdfua2-from-html (запланировано в вышестоящем репозитории) | Вывести теговую структуру для создания доступного PDF/UA-2 | Доступность | семантический (semantic) |
validate-signature (запланировано в вышестоящем репозитории) | Проверить, содержит ли PDF подпись, и определить границу доверия | инспекция (Inspect) | семантический (semantic) |
Создание документа, разбиение на страницы и стилизация.
| Рецепт | Что он делает | Модуль | Профиль |
|---|---|---|---|
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) |
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) |
optional-content-layers (запланировано в вышестоящем репозитории) | Использовать необязательное содержимое (слои) | графика (Graphics) | структурный (structural) |
transform-coordinate-space (запланировано в вышестоящем репозитории) | Преобразовать координатное пространство | графика (Graphics) | структурный (structural) |
Навигация и формы
Заголовок раздела «Навигация и формы»Добавление закладок, ссылок, аннотаций и полей AcroForm.
| Рецепт | Что он делает | Модуль | Профиль |
|---|---|---|---|
bookmarks-and-toc (запланировано в вышестоящем репозитории) | Создать закладки и оглавление | навигация (Navigation) | структурный (structural) |
links-and-annotations (запланировано в вышестоящем репозитории) | Добавить ссылки и аннотации | навигация (Navigation) | структурный (structural) |
generate-barcodes (запланировано в вышестоящем репозитории) | Сгенерировать штрихкоды | штрихкоды (Barcode) | побитовый (bitwise) |
fill-pdf-form (запланировано в вышестоящем репозитории) | Заполнить форму AcroForm | формы (Form) | структурный (structural) |
flatten-form-fields (запланировано в вышестоящем репозитории) | Свести поля формы | формы (Form) | структурный (structural) |
Сведения о документе
Заголовок раздела «Сведения о документе»Настройка метаданных и поведения средства просмотра.
| Рецепт | Что он делает | Модуль | Профиль |
|---|---|---|---|
set-document-metadata (запланировано в вышестоящем репозитории) | Задать метаданные документа | метаданные (Metadata) | структурный (structural) |
set-viewer-preferences (запланировано в вышестоящем репозитории) | Задать настройки средства просмотра | документ (Document) | структурный (structural) |
Безопасность, подпись и соответствие
Заголовок раздела «Безопасность, подпись и соответствие»Использование шифрования, подписания, доступности и вывода по профилю. Эти рецепты сохраняют различия support≠conformance и presence≠validity на странице рецепта.
| Рецепт | Что он делает | Модуль | Профиль |
|---|---|---|---|
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) |
pdf-a-4-output (запланировано в вышестоящем репозитории) | Создать вывод PDF/A-4 | Соответствие | семантический (semantic) |
validate-conformance (запланировано в вышестоящем репозитории) | Проверить соответствие профилю | соответствие (Compliance) | семантический (semantic) |
Инспекция и извлечение
Заголовок раздела «Инспекция и извлечение»Чтение содержимого и структуры обратно из PDF.
| Рецепт | Что он делает | Модуль | Профиль |
|---|---|---|---|
extract-text-content (запланировано в вышестоящем репозитории) | Извлечь текстовое содержимое | текст (Text) | семантический (semantic) |
parse-and-inspect-pdf (запланировано в вышестоящем репозитории) | Разобрать и проверить PDF | инспекция (Inspect) | семантический (semantic) |
inspect-layout-boxes (запланировано в вышестоящем репозитории) | Проверить блоки макета | инспекция (Inspect) | семантический (semantic) |
Сквозные сценарии
Заголовок раздела «Сквозные сценарии»Применение паттернов, которые охватывают несколько модулей.
| Рецепт | Что он делает | Охват | Профиль |
|---|---|---|---|
worker-safe-batch-rendering (запланировано в вышестоящем репозитории) | Безопасно выполнять отрисовку в долгоживущем воркере (общие реестры, ограниченная память) | ядро · производительность · поддержка (Core · Performance · Support) | семантический (semantic) |
exception-aware-error-handling (запланировано в вышестоящем репозитории) | Обрабатывать ошибки с помощью иерархии исключений NextPDF | исключения · контракты (Exception · Contracts) | структурный (structural) |
observe-with-opentelemetry (запланировано в вышестоящем репозитории) | Наблюдать за отрисовкой с помощью OpenTelemetry | наблюдаемость · телеметрия · события (Observability · Telemetry · Event) | семантический (semantic) |
Рецепты, ожидающие исполняемого примера
Заголовок раздела «Рецепты, ожидающие исполняемого примера»Этим рецептам нужен новый файл examples/*.php и обвязка tests/Cookbook/Php/ в основном репозитории, прежде чем их можно будет опубликовать. Указанный выше слаг является окончательным. Страница остаётся заглушкой, пока не появится пример и не пройдёт его тест:
sign-pades-b-b(запланировано в вышестоящем репозитории) (охватывает PAdES B-B и B-T)inspect-existing-signature(запланировано в вышестоящем репозитории)extract-text-content(запланировано в вышестоящем репозитории)parse-and-inspect-pdf(запланировано в вышестоящем репозитории)validate-conformance(запланировано в вышестоящем репозитории)inspect-layout-boxes(запланировано в вышестоящем репозитории)worker-safe-batch-rendering(запланировано в вышестоящем репозитории) (пример уже есть; добавлена новая тест-обвязка для памяти/сборки мусора)observe-with-opentelemetry(запланировано в вышестоящем репозитории) (добавлен новый PHP-нативный пример)
У всех остальных рецептов выше уже есть поддерживающий файл examples/*.php, и им нужна только обёртка-обвязка. Этот индекс фиксирует слаг и будущую страницу. Он не утверждает, что какая-либо ожидающая страница уже готова.
См. также
Заголовок раздела «См. также»- Сборник рецептов по интеграции — индекс интеграций с фреймворками, рендерерами и сервисами.
- Соглашения о рецептах — контракт, которому следует каждый исполняемый рецепт в этом сборнике.