JSON-Auftragskonfiguration
THPDFJobProcessor akzeptiert ein JSON-Dokument mit geordneten PDF-Operationen und gibt ein JSON-Ergebnis mit Status je Operation zurück
Unterstützte Operationen
merge kombiniert mehrere Eingabe-PDFs mithilfe von AppendPagesFromDocument zu einer einzigen Ausgabedatei
split extrahiert Seitenbereiche aus einem Eingabe-PDF mithilfe von ExtractLoadedPagesToPDF in separate Ausgabedateien
optimise rekomprimiert FlateDecode- und LZWDecode-Streams mit einer Mindestschwelle für Einsparungen
encrypt wendet AES-256-, AES-128-, RC4-128- oder RC4-40-Verschlüsselung mit vom Aufrufer festgelegten Passwörtern und Schlüsseltyp an
validate führt eine integrierte Validierungsrichtlinie aus und gibt den Berichtstext zurück
ocr.layer erzeugt durchsuchbaren Text über die standardmäßig eingebaute ASCII-Engine oder explizit konfigurierte lokale Tesseract-/RapidOCR-CLI- und DLL-Adapter; siehe externe OCR-Job-Konfiguration
JSON-Schema
Die Eingabe muss einen vollständigen JSON-Wert mit gültigen Trennzeichen, geschlossenen Containern, gültigen Escapes in Zeichenketten und ausschließlich JSON-Whitespace außerhalb von Strings enthalten; nachfolgende Inhalte und Zahlen außerhalb des endlichen Double-Bereichs werden zurückgewiesen
Der Parser akzeptiert höchstens 64 verschachtelte Wertebenen, wobei der Root-Wert als erste Ebene zählt; fehlerhafte oder zu tief verschachtelte Jobs scheitern, bevor irgendeine Operation läuft, und teilweise geparste Werte werden freigegeben
Die Eingabe ist ein Objekt mit einem operations-Array; jede Operation hat ein type-Feld und typspezifische Parameter
Die Ausgabe ist ein Objekt mit einem results-Array; jedes Ergebnis enthält type, status (ok, error oder skipped) und operationsspezifische Felder
Zeichenkettenwerte bewahren escapete Unicode-Zeichen einschließlich \u0000; endliche Zahlen verwenden einen gebietsschemaunabhängigen Dezimalpunkt und können außerhalb des vorzeichenbehafteten 64-Bit-Bereichs serialisiert werden
Numerische Werte werden als Double gespeichert und folgen der Gleitkomma-Konvertierungsgenauigkeit der Compiler-Laufzeit, sodass Ganzzahlen jenseits ihres exakten Ganzzahlbereichs bei der Eingabe gerundet werden können; GetInt und GetInt64 liefern den übergebenen Standardwert, wenn der gerundete Wert außerhalb ihres vorzeichenbehafteten Ganzzahlbereichs liegt
Budgets je Operation
Jede Operation kann ein budget-Objekt mit den Limits memoryBytes, timeMilliseconds, objectCount, decompressionRatio und outputBytes enthalten
{"operations":[{"type":"optimise","input":"in.pdf","output":"out.pdf",
"budget":{"memoryBytes":268435456,"timeMilliseconds":30000,
"objectCount":1000000,"decompressionRatio":200,"outputBytes":1073741824}}]}Eine Grenzverletzung gibt status=budget-exceeded zusammen mit metric, observed, limit und elapsedMilliseconds zurück, ohne spätere Operationen abzubrechen
Speicherbudgets gelten auch für die Abrechnung je Stream und Dokumentdekodierung, sodass die Ausweitung begrenzt wird, bevor große Puffer gehalten werden
API für undurchsichtige Handles
HPDFDocCreate gibt ein undurchsichtiges THPDFDocHandle zurück, das eine THotPDF-Instanz umschließt; HPDFDocLoadFromFile, HPDFDocGetPageCount, HPDFDocSaveLoadedDocument und HPDFDocRunJob arbeiten mit dem Handle; HPDFDocDestroy gibt es frei
Diese quellkompatiblen Pascal-Helfer bleiben für Delphi- und C++Builder-Aufrufer verfügbar
HotPDF Stable C Callback ABI stellt die flache versionierte C-Grenze für wahlfreien Zugriff auf Eingaben, Streaming-Ausgabe, Abbruch, Fortschritt, Diagnosen und den Lebenszyklus undurchsichtiger Handles bereit