Ga naar inhoud

Een HTML-tabel weergeven met NextPDF Connect

Geef gestructureerde tabelgegevens weer uit een HTML-tabelstring. add_table schoont de invoer op met een strikte DOMDocument-allowlist vóór de lay-out, zodat de uitvoer consistent blijft, ook wanneer de bronopmaak varieert. Gebruik de Core-tools create_pdf, add_table en output_pdf. De tabel wordt opgemaakt als een row/column-raster (CSS Tables 3 §3.1).

Terminal window
composer require nextpdf/server

Koppel een transport. De invoer moet een <table>-root bevatten met <tr>-rijen en <th>/<td>-cellen.

add_table dwingt een vaste element-allowlist af (table, thead, tbody, tfoot, tr, th, td, caption, b, i, u, strong, em, br, p, span). Alle attributen worden verwijderd van elk element — style, class, width, colspan, rowspan, id en de rest. Elke tag buiten de allowlist wordt vervangen door de eigen tekstinhoud. Celtekst gebruikt de actieve lettertypestatus van het document; die stel je met set_font in vóór add_table. De tekst wordt weergegeven met tekstweergave-operatoren in content-streamvolgorde (ISO 32000-2 §9.4). De lay-out-engine bepaalt de kolombreedtes, niet inline CSS.

ToolRolRisiconiveau
create_pdfEen sessie openenVeilig
set_fontHet lettertype van de celtekst instellen (optioneel, vóór add_table)Voorzichtig
add_tableDe tabel saniteren en opmakenVoorzichtig
output_pdfDe PDF weergeven en retournerenGoedkeuring vereist / Beoordeling (base64)

De toolcatalogus is de gezaghebbende catalogus. Welke tools voor je beschikbaar zijn, hangt af van het geïnstalleerde niveau.

  1. create_pdf (A4 staand, titel) → document_id.
  2. add_table met een volledige <table>...</table>-string (kopregel en gegevensrijen).
  3. output_pdf → base64 of, met een file_path, een afgeschermde bestandsschrijfactie.

De cursor verplaatst zich tot onder de laatst weergegeven rij en laat ruimte over voor de inhoud die volgt.

Valideer de HyperText Markup Language (HTML) voordat je die verzendt. Stel het cellettertype in met set_font voor deterministische typografie. Als je op een standaardwaarde vertrouwt, is het uitvoerlettertype implementatieafhankelijk. Beperk het register via het beveiligingsbeleid om te bepalen welke tools de host mag aanroepen.

  • Lege HTML of HTML zonder tabel. Invoer zonder <table> retourneert een no-renderable-table-fout.
  • Misvormde opmaak. Ongebalanceerde tags retourneren een parsefout; valideer daarom eerst de structuur.
  • Tabel breder dan de pagina. Verminder het aantal kolommen, kort de inhoud in of schakel over naar liggende oriëntatie.
  • Overloop. Een lange tabel loopt door naar een nieuwe pagina. Controleer position.page in de respons of roep vooraf add_page aan.

Een kleine tabel wordt binnen het budget weergegeven en de uitvoer is enkele KB groot. Het profiel is structural. Het opschonen verloopt in één enkele doorloop over de geparseerde DOM.

Het verwijderen van attributen is onvoorwaardelijk en kan niet worden omzeild. Het beschermt tegen style- en script-injectie via celopmaak. Geen inline CSS, eventhandler of javascript:-URL blijft behouden. De allowlist vormt de vertrouwensgrens; beschouw de weergegeven uitvoer daarom niet als een getrouwe reproductie van willekeurige bronstijl.

VerklaringSpecificatieClausulereference_id
Tabellen worden opgemaakt als een row/column-celraster.CSS Tables 3§3.1
Tekst wordt weergegeven door tekstoperatoren in streamvolgorde.ISO 32000-2§9.4

Niet van toepassing — elke tool hier maakt deel uit van Core.

Fragment uit de CSS-ondersteuningsmatrix (alleen geverifieerd)

Sectie met titel “Fragment uit de CSS-ondersteuningsmatrix (alleen geverifieerd)”

add_table voert geen algemene CSS-engine uit. Het enige “CSS”-gedrag is het vaste tabelrastermodel: rijen en kolommen komen voort uit de tabelstructuur en de lay-out-engine kiest de breedtes. Inline-styling wordt opzettelijk niet ondersteund omdat attributen worden verwijderd. Voor CSS-dekking op engineniveau (niet-Connect) raadpleeg je de CSS-ondersteuningsmatrix van het project.

add_table parseert de aangeleverde opmaak eenmalig naar een DOM en maakt deze in één doorloop op. De opmaak wordt niet herberekend op basis van externe stylesheets. Een tabel die de pagina overschrijdt, gaat door naar de volgende pagina in plaats van met terugwerkende kracht te worden herberekend.

Zeer grote tabellen houden de geparseerde DOM en de opgemaakte cellen gedurende de hele aanroep in het geheugen. Splits grote datasets over meerdere add_table-aanroepen om binnen het piekgeheugenbudget te blijven.

TransportBeschikbaarNotities
MCP (stdio)JaGrote HTML laat het stdio-frame opzwellen.
RESTJaVerstuur de HTML in de body van de aanvraag.
gRPCJaUnair; berichtgroottelimieten zijn van toepassing.

create_pdf is Veilig; set_font en add_table zijn Voorzichtig; output_pdf is Goedkeuring vereist, verlaagd naar Beoordeling in base64-modus. Bestandsuitvoer blijft Goedkeuring vereist. Zie output-approval.

Base64-uitvoer:

{ "allowed": true }

Bestandsuitvoer retourneert de challenge-envelop die in output-approval is gedocumenteerd.