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

Управление шрифтами и типографикой через NextPDF Connect

Создайте документ с несколькими стилями текста, переключая гарнитуры между текстовыми блоками. set_font задаёт активную гарнитуру, стиль и размер. Это состояние применяется к каждому последующему вызову add_text, пока вы его не измените. Вам понадобятся create_pdf, set_font, add_text и output_pdf — все они входят в набор инструментов Core. Параметры состояния текста управляют отрисовкой глифов (ISO 32000-2 §9).

Окно терминала
composer require nextpdf/server

Подключите транспорт. Вы можете использовать три встроенных семейства шрифтов, не добавляя файлы шрифтов: helvetica, times и courier.

set_font принимает family, style ("", "B", "I", "BI", "U") и size. Заданный шрифт применяется к каждому последующему вызову add_text, пока вы снова не вызовете set_font. Автоматического сброса нет. Если в add_text указан font_size, это значение переопределяет активный размер только для этого одного вызова. В следующем вызове снова используется размер из set_font. Текст выводится операторами показа текста в порядке потока содержимого (ISO 32000-2 §9.4). У add_text нет параметра цвета. Цвет текста берётся из цвета заливки графического состояния документа.

ИнструментРольУровень риска
create_pdfОткрыть сеансSafe (безопасный)
set_fontЗадать активное состояние typeface/style/размерCaution (осторожность)
add_textДобавить текст активным шрифтомCaution (осторожность)
output_pdfОтрисовать и вернуть PDFApproval Required / Review (требуется подтверждение / проверка, base64)

Эталонный источник — каталог инструментов. Доступные инструменты зависят от установленной редакции.

  1. create_pdf (A4, книжная ориентация) → document_id.
  2. set_font (helvetica, B, 24), затем add_text (заголовок, по центру).
  3. set_font (helvetica, "", 12), затем add_text (основной текст по ширине).
  4. set_font (courier, I, 10), затем add_text (фрагмент кода).
  5. output_pdf.

Задавайте шрифт явно перед каждым блоком, где важна типографика. Никогда не полагайтесь на унаследованное состояние между логическими разделами. Используйте переопределение font_size для отдельного вызова только для разового выделения: оно не сохраняется. Создавайте документ раздел за разделом и проверяйте, что каждый add_text возвращает position.

  • Неизвестное семейство. Любое семейство вне helvetica/times/courier (например, arial) отклоняется.
  • Пустое семейство. Значение family должно быть непустой строкой.
  • Недопустимый стиль. Используйте коды в верхнем регистре. "bold" отклоняется.
  • Неположительный размер. Значение size должно быть положительным числом.
  • Размер для отдельного вызова временный. Он не изменяет состояние set_font.

Встроенные шрифты почти не увеличивают вес, а размер вывода составляет несколько КБ. Профиль — structural.

Режим base64 не даёт побочных эффектов в файловой системе. Встроенные шрифты не загружают внешние файлы шрифтов, поэтому в этом рецепте нет поверхности атаки, связанной с разбором шрифтов.

УтверждениеСпецификацияРазделreference_id (идентификатор ссылки)
Текст показывается операторами показа текста в порядке потока.ISO 32000-2§9.4
Параметры состояния текста управляют отрисовкой глифов.ISO 32000-2§9

Неприменимо — все инструменты входят в набор Core.

ТранспортДоступенПримечания
MCP (stdio, стандартный ввод-вывод)Даtools/call на каждый инструмент.
RESTДаПо одной операции на каждый инструмент.
gRPCДаПо одному унарному вызову на каждый инструмент.

create_pdf — Safe; set_font/add_text — Caution; output_pdf — Approval Required, в режиме base64 понижается до Review (уровни риска HITL).

Вывод в base64:

{ "allowed": true }