JSON-jobkonfiguration

THPDFJobProcessor accepterer et JSON-dokument, som beskriver ordnede PDF-operationer, og returnerer et JSON-resultat med status pr. operation

Understøttede operationer

merge samler flere input-PDF'er i en enkelt outputfil med AppendPagesFromDocument

split udtrækker sideintervaller fra en input-PDF til separate outputfiler med ExtractLoadedPagesToPDF

optimise rekomprimerer FlateDecode- og LZWDecode-streams med en minimumsgrænse for besparelse

encrypt anvender AES-256-, AES-128-, RC4-128- eller RC4-40-kryptering med adgangskoder og nøgletype angivet af kaldende kode

validate kører en indbygget valideringspolitik og returnerer rapportteksten

ocr.layer opretter søgbar tekst gennem den indbyggede ASCII-engine som standard eller eksplicit konfigurerede lokale Tesseract/RapidOCR CLI- og DLL-adapters; se ekstern OCR-jobkonfiguration

JSON-skema

Input skal indeholde én komplet JSON-værdi med gyldne separators, lukkede containere, gyldne streng-escapes og kun JSON-whitespace uden for strenge; efterfølgende indhold og tal uden for det endelige Double-interval afvises

Parseren accepterer højst 64 indlejrede værdiniveauer, hvor rodværdien tæller som det første niveau; misdannede eller alt for dybt indlejrede jobs fejler, før nogen operation kører, og delvist fortolkede værdier frigives

Inputtet er et objekt med et operations-array. Hver operation har et type-felt og typespecifikke parametre

Outputtet er et objekt med et results-array. Hvert resultat indeholder type, status med værdien ok, error eller skipped samt operationsspecifikke felter

Strengeværdier bevarer escapede Unicode-tegn, inklusive \u0000; endelige tal bruger et lokalitetsuafhængigt decimaltegn og kan serialiseres uden for det signede 64-bit-interval

Numeriske værdier gemmes som Double og følger compiler-runtimeens præcision for konvertering af flydende tal, så heltal uden for dens eksakte heltalsinterval kan blive afrundet ved input; GetInt og GetInt64 returnerer den angivne standardværdi, når den afrundede værdi ligger uden for deres signede heltalsinterval

Budgetter pr. operation

Hver operation kan indeholde et budget-objekt med grænserne memoryBytes, timeMilliseconds, objectCount, decompressionRatio og outputBytes

{"operations":[{"type":"optimise","input":"in.pdf","output":"out.pdf",
  "budget":{"memoryBytes":268435456,"timeMilliseconds":30000,
  "objectCount":1000000,"decompressionRatio":200,"outputBytes":1073741824}}]}

En grænseoverskridelse returnerer status=budget-exceeded samt metric, observed, limit og elapsedMilliseconds uden at afbryde senere operationer

Hukommelsesbudgetter anvendes også på afkodningsregnskabet pr. stream og dokument, så udvidelse begrænses, før store buffere bevares

API med opaque handle

HPDFDocCreate returnerer en opaque THPDFDocHandle, der indkapsler en THotPDF-instans. HPDFDocLoadFromFile, HPDFDocGetPageCount, HPDFDocSaveLoadedDocument og HPDFDocRunJob arbejder på handle'en, mens HPDFDocDestroy frigiver den

Disse kildekompatible Pascal-hjælpere er fortsat tilgængelige for Delphi- og C++Builder-kaldere

HotPDFs stabile C-callback-ABI giver den flade versionsstyrede C-grænse for input med vilkårlig adgang, streamingoutput, annullering, fremskridt, diagnosticering og opaque-handle-livscyklus