Salta ai contenuti

Creare un documento multipagina con NextPDF Connect

Creare un documento multipagina con NextPDF Connect. add_page aggiunge una pagina che eredita la geometria predefinita del documento oppure ne sovrascrive l’orientamento. Dopo ogni add_page, il cursore viene riposizionato sul margine in alto a sinistra della nuova pagina. Per questo flusso si utilizzano quattro strumenti, tutti Core: create_pdf, add_text, add_page e output_pdf.

Terminal window
composer require nextpdf/server

Associare quindi un trasporto: MCP stdio, REST o gRPC. Non è necessario alcun livello con licenza.

In un documento, le pagine formano un albero. Ogni pagina è un nodo raggiungibile attraverso tale albero (ISO 32000-2 §7.7.3). Ogni pagina contiene i propri attributi di geometria, incluso il media box che definisce l’area visibile (ISO 32000-2 §7.7.3.3). create_pdf crea automaticamente la prima pagina e add_page aggiunge ogni pagina successiva. Omettere page_size/orientation per ereditare i valori predefiniti del documento. Impostare orientation: "landscape" per ruotare una pagina A4 a 297×210 mm.

StrumentoRuoloLivello di rischio
create_pdfApre la sessione e crea la prima paginaSicuro
add_textScrive testo alla posizione del cursoreAttenzione
add_pageAggiunge una pagina (eredita o sovrascrive)Attenzione
output_pdfEsegue il rendering e restituisce il PDFApprovazione richiesta / Revisione (base64)

I nomi degli strumenti corrispondono ai nomi di protocollo del registro. Il catalogo degli strumenti fa da riferimento. Gli strumenti disponibili dipendono dal livello installato.

Sequenza in breve:

  1. create_pdf (A4 verticale, titolo, autore) → document_id.
  2. add_text (titolo, carattere grande, centrato), quindi add_text (paragrafo introduttivo, carattere del corpo).
  3. add_page con il solo document_id → eredita A4 verticale. Viene restituito il nuovo page_number e il cursore si riposiziona.
  4. add_text per l’intestazione di sezione e il corpo nella pagina 2.
  5. add_page con orientation: "landscape" → una pagina A4 in larghezza.
  6. add_text per il contenuto della pagina in larghezza.
  7. output_pdf → base64.

Convalidare ogni risposta. Dopo add_page, aspettarsi che il contenuto inizi in cima alla nuova pagina. Il riposizionamento del cursore è un comportamento previsto, non un difetto. Tenere traccia di position.page nelle risposte di add_text per rilevare quando il contenuto passa a una pagina successiva. Chiamare output_pdf esattamente una volta, quindi scartare il document_id.

  • Riposizionamento del cursore. Dopo add_page, il cursore si trova sul margine in alto a sinistra della nuova pagina. Aspettarsi che continui dal punto della pagina precedente è l’errore più comune.
  • document_id obbligatorio. Ogni strumento tranne create_pdf richiede il document_id. Ometterlo è un errore.
  • Orientamento non valido. Solo "portrait" e "landscape" sono validi.
  • Modifiche dopo l’output. Il tentativo di aggiungere contenuto dopo output_pdf con destroy: true fallisce, perché la sessione non esiste più.

Un documento di testo multipagina rientra nel budget di pagine e l’output è di pochi KB. Il profilo è structural: il /ID del trailer e le marche temporali non sono stabili tra le esecuzioni.

La modalità base64 non ha effetti collaterali. L’output su file è soggetto al gate (sezione HITL). Il document_id è un handle opaco. Non condividerlo tra richieste concorrenti.

DichiarazioneSpecificaClausolareference_id
Le pagine sono raggiunte attraverso l’albero delle pagine.ISO 32000-2§7.7.3
Un oggetto pagina definisce i propri attributi di geometria.ISO 32000-2§7.7.3.3

Non applicabile — tutti gli strumenti sono Core.

TrasportoDisponibileNote
MCP (stdio)tools/call per strumento.
RESTUn’operazione per strumento.
gRPCUna chiamata unaria per strumento.

create_pdf è Sicuro; add_text e add_page sono Attenzione; output_pdf è Approvazione richiesta, declassato a Revisione in modalità base64. L’output su file resta in Approvazione richiesta. Consultare output-approval e livelli di rischio HITL.

Output base64 in questo caso:

{ "allowed": true }

Il modulo di challenge è illustrato in output-approval.