JSON- og C ABI-dokumentoperationer

export.structured eksporterer valgte sider som semantisk HTML, XHTML, XML eller JSON; tables.export eksporterer typede tabeller som CSV, JSON eller XLSX og bevarer kontinuitet på tværs af sider, flettede celler og native value inference

Begge operationer kræver en binær output-destination, bevarer dokumentet og eksisterende signaturfelter og eksponerer afgrænsede native export-options

Struktureret eksport og eksport af typede tabeller

{"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":"."}}

Struktureret eksport accepterer html, xhtml, xml og json (standard); tabelexport accepterer csv (standard), json og xlsx

Strukturerede boolean-options er includeCoordinates, includeStyles, includeImages, includeTables, includeAccessibilitySemantics, preferTaggedStructure, fallbackToGeometricSemantics, includeNavigation, includeAnnotations og includeFormControls; alle har true som standard

imageMode accepterer omit, metadata og embedded-png (standard); se Structured Loaded-Page Export for den semantiske model og håndteringen af følsomme felter

Strukturerede ressource-options er maxPageCount, maxGlyphsPerPage, maxImagesPerPage, maxStructureNodes, maxOutlineItems, maxInteractionsPerPage, maxFormOptionsPerField, maxOutputBytes, maxImageBytes og maxTotalImageBytes

Tabel-boolean-options er detectMergedCells, detectRepeatedHeaders, mergeAcrossPages og inferValueTypes; alle har true som standard

dateOrder accepterer ymd (standard), mdy og dmy; separatorer skal være enkelte printbare tegn, og en tom thousandsSeparator deaktiverer den

minimumTableConfidence accepterer 0 til 1 og har 0.55 som standard; positiv columnTolerance har 12 sideenheder som standard

Tabel-ressource-options er maxPageCount, maxGlyphsPerPage, maxTableCount, maxRowCount, maxCellCount, maxTextCharacters og maxOutputBytes; se Typet tabeludtræk for cellemodellen

Ukendte options-navne, ugyldige typer, ikke-understøttede formater og ikke-positive grænser afvises; ønskede native-grænser begrænses af konservative memory- og objektbudgetter

Eksport-staging begrænses til det mindste af budget.outputBytes og en fjerdedel af budget.memoryBytes; effectiveOutputLimit rapporterer den grænse, mens strammere options.maxOutputBytes kan gælde

Native ressourcefejl rapporterer budget-exceeded, metric'en nativeExportResources og den native diagnostik; observed=1 og limit=0 betegner en nægtet ressourcetilstand snarere end målt byte-forbrug

Begge operationer rapporterer documentUpdated: false, bevarer kildens auto-launch- og afkodeindstillinger, stage'r output før publicering og bevarer eksisterende fildestinationer efter et fejlet file job

Deadline- og ABI-callback-annulleringstjek er kooperative ved operations- og publiceringscheckpoints; native cancellation tokens gælder også i understøttede udtræksfaser, og native arbejde afbrydes ikke med tvang

THPDFJobProcessor.ExecuteLoadedOperation og hpdf_document_execute_json_v1 deler samme schema-versionerede dokumentoperationsmotor

Find de aktuelle operationsnavne, formater, signeringsprofil, callback-adfærd og standardbudgetter med THPDFJobProcessor.Capabilities eller hpdf_capabilities_json_to_io

Operationer

Operation-JSON bruger UTF-8 og schemaVersion: 1; sideindekser er zero-based, og valgte side-arrays kan ikke indeholde duplikater

TypeInputResultat
infoIndlæst dokumentAntal sider, objekter, formularer og signaturfelter
renderpage, dpi (18–1,200), format (png)PNG-artefakt og dimensioner
export.structuredpages, format, optionsSemantisk HTML/XHTML/XML/JSON-artefakt og eksporttelemetri
tables.exportpages, format, optionsTypet CSV/JSON/XLSX-artefakt og tabel-/celle-/header-telemetri
text.extractpages, valgfrit layoutUnicode-sidetekst og valgfri UTF-8-tekstartefakt
text.replacepages, needle, replacement, matchCaseAntal matches, erstatninger og spring over pr. side samt valgfri PDF-artefakt
forms.readIndlæst dokumentNavne, afkodede Unicode-værdier og native felttyper
forms.fillfields-array med name/value-strengeAtomiske opdateringer; ukendte eller duplikerede navne afviser operationen
forms.flattenIndlæst dokumentAntal flattenede felter og resterende felter
ocr.layerpages, engine (builtin-ascii), dpi, minimumConfidence, skipPagesWithText, replaceExistingSøgbar PDF og accepterede/forkastede ordtællinger
redactburnIn: true, rektangler med page/x1/y1/x2/y2Antal udførte redaktioner og PDF-artefakt
signpfxFile, pfxPassword, page, fieldName, valgfrit rektangel og contentsBytesPFX-signeret PDF-artefakt
archive.pdfa4.rasteracceptInformationLoss: true, iccProfileFile, valgfri dpi og optionsValideret PDF/A-4 raster-artefakt, fjernelsestællinger og en eksplicit tabsprofil; bevarer den indlæste kilde

Teksterstatning returnerer en delvis status, når den native erstatnings-API ikke kan encode et match; undersøg dens tællinger pr. side

OCR eksponerer i øjeblikket den indbyggede ASCII-motor; native Delphi-API'er accepterer eksterne OCR-adaptere

Mutationer afviser dokumenter med eksisterende signaturfelter, herunder usignerede placeholders; brug den inkrementelle signeringsprofil eller native inkrementelle API'er til at bevare signaturer i de dokumenter

Incremental PFX-signering accepterer en uændret fastholdt kilde, inklusive understøttede krypterede PDF'er med en eksplicit operations-adgangskode, validerer hver gammel og ny CMS, bevarer originale bytes og kryptering, understøtter et eksisterende tomt felt, tjekker krypteringstilladelser og afviser kilde-/output-fil-aliasser

Signering producerer et signeret artefakt og gendanner det oprindelige handle med rapporten documentUpdated: false; eksisterende formularfelter forbliver tilgængelige, midlertidige signaturfelter fjernes, og det oprindelige handle kan forespørges eller bruges til en anden operation efter signeringen

PDF/A-4 raster-arkiveringskonvertering

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

Placér dette objekt i et file jobs operations-array, eller angiv det direkte via hpdf_document_execute_json_v1 med et indlæst handle og binære output-callbacks; C ABI ignorerer file job-input/output-stier og bruger sine adaptere

acceptInformationLoss skal være JSON-booleanen true, og iccProfileFile skal navngive en ikke-tom, NUL-fri sti til en understøttet sRGB matrix/TRC ICC-profil på værtsmaskinen; relative profilstier opløses i forhold til processens arbejdsmappe

dpi har 150 som standard og accepterer integers fra 36 til 1,200; konverteringen dækker hver kildeside og afviser ethvert pages-medlem

Resultatobjektet archive rapporterer nativeValidationSucceeded, sourcePages, pagesRendered, rasterPixels, outputBytes, removedAnnotations, removedFormFields og removedEmbeddedFiles

archive.lossy er true, og alle flag i archive.lossProfile er false: searchableText, vectorContent, interactiveContent, originalSignatures, annotationAppearances og structureIdentity

Sideindhold bliver til RGB-pixels; annoteringer og widget-appearances udelades, og originale signaturer følges ikke med til outputtet. Den indlæste kilde forbliver tilgængelig med documentUpdated: false, også efter fejlet publicering; dens tidligere launch-, afkode-, stream-threshold-, annullerings- og render-indstillinger gendannes

Binært output er krævet, og native PDF/A-4-validering skal lykkes, før der leveres. Se indlæst PDF/A-4 raster-konvertering for grænserne for rendering, farve, codec, kilde-alias og konformitet

Ressourcebudgetter for arkivering

Det valgfrie options-objekt accepterer positive eksakte integers, der strammer følgende effektive grænser; ukendte keys og værdier over en grænse afviser anmodningen i stedet for at øge operationsbudgettet

OptionEffektiv standard og maksimum
maxPagesDet mindste af 1,000 og budget.pageCount
maxInputObjectsDet mindste af 200,000 og budget.objectCount
maxPixelsPerPageDet mindste af 40,000,000, budget.pixels og memoryBytes / 32
maxTotalPixelsDet mindste af 500,000,000, budget.pixels og memoryBytes / 32
maxRasterBytesDet mindste af 256 MiB og memoryBytes / 8
maxOutputBytesDet mindste af 256 MiB, budget.outputBytes og memoryBytes / 8
maxDecodedStreamBytesDet mindste af 64 MiB og memoryBytes / 8
maxTotalDecodedBytesDet mindste af 256 MiB og memoryBytes / 4

ICC-filen begrænses til det mindste af 4 MiB og memoryBytes / 16 før allokering; disse konservative tilsagn dækker samtidig staging, output-buffere, billeddata og dekoderarbejde og etablerer ikke en striks proces-RSS-grænse

Forøg budgetterne på øverste job-niveau, når en større arkiveringsarbejdsbyrde er tilsigtet; indlejrede options strammer kun de effektive grænser, og native maksima gælder stadig

Arkiveringscheckpoints poller callback-annullering, den lånte kildes cancellation token, forløbet tid og objektantal under konverteringen. Budget- og annulleringsfejl bevarer deres strukturerede statuskoder gennem den native konverter

Filjobs

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

THPDFJobProcessor.Execute accepterer et operations-array på op til 1,024 operationer og 4 MiB JSON; eksisterende merge-, split-, optimise-, encrypt- og validate-jobs forbliver tilgængelige

Hver dokumentoperation angiver en inputsti og en valgfri adgangskode; render, text.replace, forms.fill, forms.flatten, ocr.layer, redact, sign og archive.pdfa4.raster kræver en outputsti

Artefakter skrives til en midlertidig fil ved siden af destinationen, flushes og valideres og publiceres derefter atomisk; fejl bevarer en eksisterende destination, og input/output må dele en sti

C-callback-kontrakt

Zero-initialisér hpdf_operation_v1, sæt struct_size til dens native størrelse, abi_version til HPDF_ABI_VERSION_1 og flags til nul; sammenlign dens størrelse med hpdf_abi_operation_v1_size

Operations-recorden bærer JSON-bytes og en eksakt længde, valgfrit random-access-input, valgfrit sekventielt binært output og krævet sekventielt JSON-resultat-output

Input-callbacks, brugerdata og bagvedliggende PDF-bytes skal forblive gyldige, indtil handlet erstattes eller destrueres, fordi lazy parsing bibeholder adapteren

Output-/resultat-callbacks findes kun under kaldet; serialisér kald for hvert handle, og undgå callback-reentry

Callbacks bruger cdecl, delvise overførsler forsøges igen, og vellykkede skrivninger skal gøre positiv fremgang; exceptions konverteres til faste statuskoder

Mutationer committer først, når både artefakt- og JSON-resultat-levering lykkes; callback-fejl eller annullering ruller ændringerne tilbage, og kaldere kasserer bytes, der allerede er leveret

Erstatningsinput indlæses før mutationstransaktionen og forbliver en separat tilstandsændring

Budgetter

Det valgfrie budgetobjekt accepterer positive eksakte integers på højst 9,007,199,254,740,991

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

Generelle output-/resultatbudgetter begrænses hver til det halve af memory-budgettet; arkiveringskonverteringen anvender de strengere grænser ovenfor. De begrænser konfigurerede operationsressourcer snarere end processens samlede memory

Annullerings- og forløbet-tid-tjek er kooperative ved operations-, side-, input-læsnings- og output-skrive-checkpoints; en lang native-rutine kan fortsætte til sit næste checkpoint

Rapporter bærer schemaVersion, status og statusCode; budgetfejl bruger status 8, annullering 4, I/O-fejl 5, parsefejl 6, ugyldige argumenter 1 og eksekveringsfejl 7