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