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