JSON- en C ABI-documentbewerkingen

export.structured exporteert geselecteerde pagina's als semantische HTML, XHTML, XML of JSON; tables.export exporteert getypte tabellen als CSV, JSON of XLSX en behoudt continuïteit over pagina's heen, samengevoegde cellen en native waarde-inferentie

Beide bewerkingen vereisen een binaire uitvoerbestemming, behouden het document en bestaande handtekeningvelden en bieden begrensde native exportopties

Gestructureerde export en getypte tabelexport

{"schemaVersion":1,"type":"export.structured","pages":[0,1],"format":"html",
 "options":{"imageMode":"metadata","includeFormControls":false}}

{"schemaVersion":1,"type":"tables.export","pages":[0,1],"format":"json",
 "options":{"mergeAcrossPages":true,"dateOrder":"dmy",
            "decimalSeparator":",","thousandsSeparator":"."}}

Gestructureerde export accepteert html, xhtml, xml en json (standaard); tabelexport accepteert csv (standaard), json en xlsx

De booleaanse opties van gestructureerde export zijn includeCoordinates, includeStyles, includeImages, includeTables, includeAccessibilitySemantics, preferTaggedStructure, fallbackToGeometricSemantics, includeNavigation, includeAnnotations en includeFormControls; ze staan allemaal standaard op true

imageMode accepteert omit, metadata en embedded-png (standaard); zie Gestructureerde export van geladen pagina's voor het semantische model en het gedrag rond gevoelige velden

De resource-opties van gestructureerde export zijn maxPageCount, maxGlyphsPerPage, maxImagesPerPage, maxStructureNodes, maxOutlineItems, maxInteractionsPerPage, maxFormOptionsPerField, maxOutputBytes, maxImageBytes en maxTotalImageBytes

De booleaanse opties van tabelexport zijn detectMergedCells, detectRepeatedHeaders, mergeAcrossPages en inferValueTypes; ze staan allemaal standaard op true

dateOrder accepteert ymd (standaard), mdy en dmy; scheidingstekens zijn losse afdrukbare tekens, en een lege thousandsSeparator schakelt die uit

minimumTableConfidence accepteert 0 tot en met 1 en staat standaard op 0.55; een positieve columnTolerance staat standaard op 12 pagina-eenheden

De resource-opties van tabelexport zijn maxPageCount, maxGlyphsPerPage, maxTableCount, maxRowCount, maxCellCount, maxTextCharacters en maxOutputBytes; zie Extractie van getypte tabellen voor het celmodel

Onbekende optienamen, ongeldige typen, niet-ondersteunde formaten en niet-positieve limieten worden geweigerd; aangevraagde native limieten worden ingekaderd door conservatieve geheugen- en objectbudgetten

De staging van export is begrensd op het minimum van budget.outputBytes en een kwart van budget.memoryBytes; effectiveOutputLimit rapporteert die grens, en een strengere options.maxOutputBytes kan daarnaast gelden

Native resourcefouten rapporteren budget-exceeded, de metric nativeExportResources en de native diagnostiek; observed=1 en limit=0 duiden op een geweigerde resourceconditie, niet op gemeten bytes

Beide bewerkingen rapporteren documentUpdated: false, behouden de auto-launch- en decodeerinstellingen van de bron, stagen de uitvoer vóór publicatie en laten bestaande bestandsbestemmingen intact na een mislukte file job

Deadline- en ABI-callback-annuleringscontroles zijn coöperatief op bewerkings- en publicatiecheckpoints; native annuleringstokens gelden ook binnen ondersteunde extractiestadia, en native werk wordt niet geforceerd onderbroken

THPDFJobProcessor.ExecuteLoadedOperation en hpdf_document_execute_json_v1 delen dezelfde schema-geversioneerde documentbewerkingsengine

Ontdek de huidige bewerkingsnamen, formaten, het ondertekeningsprofiel, het callbackgedrag en de standaardbudgetten via THPDFJobProcessor.Capabilities of hpdf_capabilities_json_to_io

Bewerkingen

Bewerkings-JSON gebruikt UTF-8 en schemaVersion: 1; pagina-indexen zijn zero-based en geselecteerde paginalijsten mogen geen duplicaten bevatten

TypeInvoerResultaat
infoGeladen documentAantallen van pagina's, objecten, formulieren en handtekeningvelden
renderpage, dpi (18–1,200), format (png)PNG-artefact en afmetingen
export.structuredpages, format, optionsSemantisch HTML/XHTML/XML/JSON-artefact en exporttelemetrie
tables.exportpages, format, optionsGetypt CSV/JSON/XLSX-artefact en tabel-/cel-/koptekstelemetrie
text.extractpages, optionele layoutPaginatekst in Unicode en optioneel UTF-8-tekstartefact
text.replacepages, needle, replacement, matchCaseAantallen gevonden/vervangen/overgeslagen per pagina en optioneel PDF-artefact
forms.readGeladen documentNamen, gedecodeerde Unicode-waarden en native veldtypen
forms.fillfields-array met name/value-stringsAtomische updates; onbekende of dubbele namen weigeren de bewerking
forms.flattenGeladen documentAantal afgevlakte velden en resterende velden
ocr.layerpages, engine (builtin-ascii), dpi, minimumConfidence, skipPagesWithText, replaceExistingDoorzoekbare PDF en aantallen geaccepteerde/geweigerde woorden
redactburnIn: true, rectangles met page/x1/y1/x2/y2Aantal toegepaste redactions en PDF-artefact
signpfxFile, pfxPassword, page, fieldName, optionele rectangle en contentsBytesMet PFX ondertekend PDF-artefact
archive.pdfa4.rasteracceptInformationLoss: true, iccProfileFile, optionele dpi en optionsGevalideerd PDF/A-4-rasterartefact, verwijderaantallen en een expliciet verliesprofiel; behoudt de geladen bron

Tekstvervanging geeft een partiële status terug wanneer de native vervangings-API een match niet kan coderen; controleer de aantallen per pagina

Externe OCR-jobs accepteren expliciet geconfigureerde Tesseract CLI/DLL- en RapidOCR CLI/DLL-engines naast de ingebouwde ASCII-default, met getypeerde instellingen, engine-timeouts, pixelcaps en atomische publicatie

Mutaties weigeren documenten met bestaande handtekeningvelden, ook niet-ondertekende placeholders; gebruik het incrementele signing-profiel of native incrementele API's om handtekeningen in die documenten te behouden

Incrementele PFX-signing accepteert een ongewijzigde achtergehouden bron, inclusief ondersteunde versleutelde PDF's met een expliciet operatiewachtwoord, valideert elke oude en nieuwe CMS, behoudt originele bytes en versleuteling, ondersteunt een bestaand leeg veld, controleert versleutelingsrechten en weigert bron-/uitvoerbestandsaliassen

Ondertekening produceert een ondertekend artefact en herstelt de oorspronkelijke handle, met documentUpdated: false als rapportage; bestaande formuliervelden blijven beschikbaar, tijdelijke handtekeningvelden worden verwijderd en de handle kan na het ondertekenen worden bevraagd of voor een andere bewerking worden gebruikt

PDF/A-4-rasterconversie voor archivering

{
  "schemaVersion": 1,
  "type": "archive.pdfa4.raster",
  "acceptInformationLoss": true,
  "iccProfileFile": "profiles/sRGB.icm",
  "dpi": 150,
  "input": "source.pdf",
  "output": "archive.pdf"
}

Plaats dit object in de operations-array van een file job, of lever het rechtstreeks aan via hpdf_document_execute_json_v1 met een geladen handle en binaire uitvoer-callbacks; de C ABI negeert de input/output-paden van de file job en gebruikt zijn eigen adapters

acceptInformationLoss moet de JSON-booleaanse waarde true zijn en iccProfileFile moet een niet-lege, NUL-vrije padnaam noemen van een ondersteund sRGB-matrix/TRC-ICC-profiel op de uitvoerende host; relatieve profielpaden worden opgelost ten opzichte van de working directory van het proces

dpi staat standaard op 150 en accepteert integers van 36 tot en met 1,200; de conversie omvat elke bronpagina en wijst elke pages-member af

Het archive-resultaatobject rapporteert nativeValidationSucceeded, sourcePages, pagesRendered, rasterPixels, outputBytes, removedAnnotations, removedFormFields en removedEmbeddedFiles

archive.lossy is true en elke vlag in archive.lossProfile is false: searchableText, vectorContent, interactiveContent, originalSignatures, annotationAppearances en structureIdentity

Pagina-inhoud wordt RGB-pixels; annotaties en widget-weergaven worden weggelaten en oorspronkelijke handtekeningen gaan niet mee naar de uitvoer. De geladen bron blijft beschikbaar met documentUpdated: false, ook na een mislukte publicatie; de eerdere launch-, decodeer-, streamdrempel-, annulerings- en renderinstellingen worden hersteld

Binaire uitvoer is vereist en native PDF/A-4-validatie moet slagen vóór levering. Zie geladen PDF/A-4-rasterconversie voor de grenzen rond rendering, kleur, codecs, bron-aliassen en conformiteit

Resourcebudgetten voor archivering

Het optionele options-object accepteert positieve exacte integers die de volgende effectieve caps aanscherpen; onbekende keys en waarden boven een cap weigeren het verzoek in plaats van het bewerkingsbudget te vergroten

OptieEffectieve standaardwaarde en maximum
maxPagesMinimum van 1,000 en budget.pageCount
maxInputObjectsMinimum van 200,000 en budget.objectCount
maxPixelsPerPageMinimum van 40,000,000, budget.pixels en memoryBytes / 32
maxTotalPixelsMinimum van 500,000,000, budget.pixels en memoryBytes / 32
maxRasterBytesMinimum van 256 MiB en memoryBytes / 8
maxOutputBytesMinimum van 256 MiB, budget.outputBytes en memoryBytes / 8
maxDecodedStreamBytesMinimum van 64 MiB en memoryBytes / 8
maxTotalDecodedBytesMinimum van 256 MiB en memoryBytes / 4

Het ICC-bestand is vóór allocatie begrensd op het minimum van 4 MiB en memoryBytes / 16; deze conservatieve marges dekken gelijktijdige staging, uitvoerbuffers, beeldgegevens en decoderwerk, en vormen geen strikte grens voor het process-RSS

Verhoog de jobbudgetten op topniveau wanneer een grotere archiefwerklast bewust is bedoeld; geneste opties aanscherpen alleen de effectieve caps en native maxima blijven gewoon gelden

Archiefcheckpoints controleren tijdens de conversie callback-annulering, het geleende annuleringstoken van de bron, verstreken tijd en objectaantallen. Budget- en annuleringsfouten behouden hun gestructureerde statuscodes in de native converter

File jobs

{
  "operations": [
    {"type": "capabilities"},
    {"schemaVersion": 1, "type": "text.extract", "input": "input.pdf",
     "pages": [0, 1], "output": "text.txt"}
  ]
}

THPDFJobProcessor.Execute accepteert een operations-array met maximaal 1,024 bewerkingen en 4 MiB aan JSON; bestaande merge-, split-, optimise-, encrypt- en validate-jobs blijven beschikbaar

Elke documentbewerking levert een invoerpad en een optioneel wachtwoord aan; render, text.replace, forms.fill, forms.flatten, ocr.layer, redact, sign en archive.pdfa4.raster vereisen een uitvoerpad

Artefacten worden naar een tijdelijk bestand naast de bestemming geschreven, geflushed en gevalideerd, en daarna atomisch gepubliceerd; bij falen blijft een bestaande bestemming behouden en input en output mogen een pad delen

Contract voor C-callbacks

Initialiseer hpdf_operation_v1 op nul, stel struct_size in op de native grootte, abi_version op HPDF_ABI_VERSION_1 en de vlaggen op nul; vergelijk de grootte met hpdf_abi_operation_v1_size

De bewerkingsrecord bevat JSON-bytes en een exacte lengte, optionele random-access-invoer, optionele sequentiële binaire uitvoer en verplichte sequentiële JSON-resultaatuitvoer

Invoer-callbacks, user data en de onderliggende PDF-bytes moeten geldig blijven tot de handle wordt vervangen of vernietigd, omdat lazy parsing de adapter vasthoudt

Uitvoer-/resultaat-callbacks bestaan alleen tijdens de aanroep; serialiseer aanroepen per handle en vermijd callback-reentrancy

Callbacks gebruiken cdecl, gedeeltelijke overdrachten worden opnieuw geprobeerd en een geslaagde write moet werkelijke voortgang maken; exceptions worden omgezet in vaste statuscodes

Mutaties committen pas wanneer zowel het artefact als het JSON-resultaat is afgeleverd; een callback-fout of annulering rolt wijzigingen terug en aanroepers verwerpen bytes die al zijn afgeleverd

De vervangingsinvoer wordt vóór de mutatietransactie geladen en blijft een aparte statuswijziging

Budgetten

Het optionele budgetobject accepteert positieve exacte integers van hoogstens 9,007,199,254,740,991

KeyStandaardwaarde
memoryBytes268,435,456
outputBytes134,217,728
resultBytes16,777,216
timeMilliseconds60,000
objectCount1,000,000
pageCount1,024
pixels100,000,000

De algemene output-/resultaatbudgetten zijn elk begrensd op de helft van het geheugenbudget; archiefconversie past de strengere caps hierboven toe. Deze begrenzen de geconfigureerde bewerkingsresources, niet het totale procesgeheugen

Controles op annulering en verstreken tijd zijn coöperatief op bewerkings-, pagina-, invoerlees- en uitvoerschrijfcheckpoints; een lange native routine kan doorlopen tot zijn volgende checkpoint

Rapporten bevatten schemaVersion, status en statusCode; budgetfouten gebruiken status 8, annulering 4, I/O-fout 5, parsefout 6, ongeldige argumenten 1 en uitvoeringsfout 7