Konfigurace úlohy JSON
Konfigurace úlohy JSON poskytuje omezený, verzovaný vstup pro automatizované pracovní postupy HotPDF
Podporované operace
merge kombinuje více vstupních PDF do jednoho výstupního souboru přes AppendPagesFromDocument
split extrahuje rozsahy stránek ze vstupního PDF do samostatných výstupních souborů přes ExtractLoadedPagesToPDF
optimise znovu komprimuje streamy FlateDecode a LZWDecode s minimálním prahem úspory
encrypt aplikuje šifrování AES-256, AES-128, RC4-128 nebo RC4-40 s hesly a typem klíče zadanými volajícím
validate spustí vestavěnou validační politiku a vrátí text zprávy
ocr.layer vytváří prohledávatelný text přes defaultní vestavěný ASCII engine nebo explicitně nakonfigurované lokální CLI a DLL adaptéry Tesseract/RapidOCR; viz konfigurace externích OCR úloh
JSON schéma
Vstup musí obsahovat jednu kompletní JSON hodnotu s platnými oddělovači, uzavřenými kontejnery, platnými escapováními řetězců a jen JSON mezerami mimo řetězce; obsah za koncem a čísla mimo konečný rozsah Double se odmítají
Parser přijímá nejvýše 64 úrovní vnoření hodnot, přičemž kořenová hodnota se počítá jako první úroveň; poškozené nebo přehnaně vnořené úlohy selžou dřív, než se spustí jakákoli operace, a částečně parsované hodnoty se uvolní
Vstupem je objekt s polem operations; každá operace má pole type a parametry specifické pro typ
Výstupem je objekt s polem results; každý výsledek nese type, status (ok, error nebo skipped) a pole specifická pro operaci
Řetězcové hodnoty zachovávají escapované znaky Unicode, včetně \u0000; konečná čísla používají desetinnou tečku nezávislou na locale a dají se serializovat i mimo rozsah znaménkových 64bitových celých čísel
Číselné hodnoty se ukládají jako Double a řídí se přesností konverze desetinných čísel v runtime kompilátoru, takže celá čísla mimo jeho přesný celočíselný rozsah se mohou při vstupu zaokrouhlit; GetInt a GetInt64 vrátí dodaný default, když je zaokrouhlená hodnota mimo jejich znaménkový celočíselný rozsah
Rozpočty na operaci
Každá operace může obsahovat objekt budget s limity memoryBytes, timeMilliseconds, objectCount, decompressionRatio a outputBytes
{"operations":[{"type":"optimise","input":"in.pdf","output":"out.pdf",
"budget":{"memoryBytes":268435456,"timeMilliseconds":30000,
"objectCount":1000000,"decompressionRatio":200,"outputBytes":1073741824}}]}
Porušení limitu vrátí status=budget-exceeded plus metric, observed, limit a elapsedMilliseconds, bez přerušení pozdějších operací
Parser ověřuje typy, názvy, rozsahy, hloubku a velikost a vrací diagnostiku pro neznámé nebo neplatné hodnoty
API opaqních handle
HPDFDocCreate vrací opaquí THPDFDocHandle obalující instanci THotPDF; HPDFDocLoadFromFile, HPDFDocGetPageCount, HPDFDocSaveLoadedDocument a HPDFDocRunJob pracují nad handlem; HPDFDocDestroy ho uvolní
Tito pomocníci Pascalu se zdrojovou kompatibilitou zůstávají dostupní volajícím v Delphi i C++Builder
Stabilní C callback ABI HotPDF poskytuje ploché verzované C rozhraní pro random-access vstup, streamovaný výstup, zrušení, progres, diagnostiku a životní cyklus opaqních handle