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

Проверка состояния макета в NextPDF Connect

Проверяйте состояние макета документа во время сеанса, чтобы уверенно принимать решения о позиционировании. preview_layout — идемпотентный запрос только для чтения, повторно сверенный с реестром инструментов сервера, в котором PreviewLayoutTool предоставляет имя протокола preview_layout. Он не отрисовывает PDF, не перемещает курсор, и его можно вызывать любое число раз. Все эти инструменты относятся к Core: create_pdf, set_font, add_text, preview_layout, add_page и output_pdf.

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

Подключите транспорт. Лицензионный уровень не требуется.

preview_layout возвращает количество страниц, текущую страницу, размеры страницы, поля и положение курсора — собственные геометрические атрибуты страницы (ISO 32000-2 §7.7.3.3). Используйте эти значения, чтобы вычислить оставшееся место по вертикали:

remaining = page_height - bottom_margin - cursor_y

Если значение remaining больше предполагаемой высоты следующего блока, продолжайте на текущей странице. В противном случае сначала вызовите add_page. Поскольку вызов доступен только для чтения, на любом транспорте он возвращает обычный ответ (PSR-18 §p2).

ИнструментРольУровень риска
create_pdfОткрыть сеансБезопасно
set_fontЗадать активный шрифтОсторожно
add_textЗаписать текст, переместить курсорОсторожно
preview_layoutЧтение состояния макета (без изменений)Безопасно
add_pageДобавить страницу, когда заканчивается местоОсторожно
output_pdfОтрисовать и вернуть PDFТребуется одобрение / проверка (base64)

Источник истины — Каталог инструментов. Доступные вам инструменты зависят от установленного уровня.

  1. create_pdf (Letter, книжная ориентация) → document_id.
  2. set_font (шрифт helvetica, 14).
  3. add_text ×3 (абзацы с выравниванием по ширине).
  4. preview_layout → прочитайте page_dimensions, margins, cursor_position.
  5. Вычислите remaining; если значение слишком мало, вызовите add_page.
  6. add_text (следующий раздел).
  7. output_pdf.

Вызывайте preview_layout перед любым блоком, если вы не уверены, что он поместится. Считайте возвращённое положение курсора точным для последней записи. Если вы изменили шрифт, поля или высоту строки после последнего вызова add_text, запишите короткий пробный фрагмент и повторите запрос, прежде чем полагаться на прогнозируемое положение.

  • Устаревшее положение курсора после изменения стиля. Возвращаемое положение отражает последнюю запись, а не отложенные изменения состояния. Выполните повторную проверку, если важна точность.
  • Уничтоженный сеанс. preview_layout завершается ошибкой для уничтоженного document_id. Чтобы проверить макет после вывода, задайте destroy: false в предыдущем вызове output_pdf.
  • Пустой текст или неизвестный шрифт. Применяются стандартные ошибки проверки входных данных.

preview_layout — недорогая операция чтения. Профиль воспроизводимости документа — structural.

Запрос доступен только для чтения и не имеет побочных эффектов. Возвращаемые координаты не конфиденциальны, но рассматривайте их как данные, ограниченные областью сеанса.

УтверждениеСпецификацияПунктreference_id (идентификатор ссылки)
Объект страницы определяет свои геометрические атрибуты.ISO 32000-2§7.7.3.3
Запрос только для чтения возвращает обычный ответ транспорта.PSR-18§p2

Неприменимо — все инструменты относятся к Core.

ТранспортДоступенПримечания
MCP (stdio) — стандартный ввод-выводДаpreview_layout — это tools/call.
RESTДаБезопасная операция в стиле GET.
gRPCДаУнарный; идемпотентный.

preview_layout относится к уровню Safe (только для чтения) и никогда не требует подтверждения. create_pdf относится к уровню Safe. set_font, add_text и add_page относятся к уровню Caution. output_pdf относится к уровню Approval Required, который в режиме base64 понижается до Review (уровни риска HITL).

Проверка только для чтения никогда не требует подтверждения:

{ "allowed": true }