Configurazione dei Job JSON

THPDFJobProcessor accetta un documento JSON che descrive operazioni PDF ordinate e restituisce un risultato JSON con lo stato per operazione

Operazioni supportate

merge combina più PDF di input in un singolo file di output usando AppendPagesFromDocument

split estrae intervalli di pagine da un PDF di input in file di output separati usando ExtractLoadedPagesToPDF

optimise ricompatta i flussi FlateDecode e LZWDecode con una soglia minima di risparmio

encrypt applica la cifratura AES-256, AES-128, RC4-128 o RC4-40 con password e tipo di chiave specificati dal chiamante

validate esegue un criterio di validazione integrato e restituisce il testo del report

ocr.layer crea testo ricercabile attraverso il motore ASCII integrato predefinito o adattatori locali esplicitamente configurati Tesseract/RapidOCR CLI e DLL; vedere la configurazione dei job OCR esterni

Schema JSON

L'input deve contenere un singolo valore JSON completo con separatori validi, contenitori chiusi, escape di stringa validi e solo whitespace JSON fuori dalle stringhe; contenuto finale e numeri fuori dall'intervallo finito di Double vengono rifiutati

Il parser accetta al massimo 64 livelli di annidamento di valori, contando il valore radice come primo livello; job malformati o eccessivamente annidati falliscono prima che qualsiasi operazione venga eseguita, e i valori parzialmente analizzati vengono rilasciati

L'input è un oggetto con un array operations; ogni operazione ha un campo type e parametri specifici del tipo

L'output è un oggetto con un array results; ogni risultato porta type, status (ok, error o skipped) e campi specifici dell'operazione

I valori stringa preservano i caratteri Unicode con escape, incluso \u0000; i numeri finiti usano un punto decimale indipendente dal locale e possono essere serializzati fuori dall'intervallo con segno a 64 bit

I valori numerici sono memorizzati come Double e seguono la precisione di conversione in virgola mobile del runtime del compilatore, quindi interi oltre il suo intervallo esatto di interi possono essere arrotondati in ingresso; GetInt e GetInt64 restituiscono il default fornito quando il valore arrotondato è fuori dal loro intervallo di interi con segno

Budget per operazione

Ogni operazione può contenere un oggetto budget con i limiti memoryBytes, timeMilliseconds, objectCount, decompressionRatio e outputBytes

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

Una violazione del limite restituisce status=budget-exceeded più metric, observed, limit ed elapsedMilliseconds senza interrompere le operazioni successive

I budget di memoria vengono applicati anche alla contabilità di decodifica per flusso e per documento così che l'espansione sia limitata prima che vengano conservati buffer di grandi dimensioni

API con handle opaco

HPDFDocCreate restituisce un THPDFDocHandle opaco che racchiude un'istanza THotPDF; HPDFDocLoadFromFile, HPDFDocGetPageCount, HPDFDocSaveLoadedDocument e HPDFDocRunJob operano sull'handle; HPDFDocDestroy lo rilascia

Questi helper Pascal compatibili a livello di sorgente restano disponibili per i chiamanti Delphi e C++Builder

HotPDF ABI Callback C Stabile fornisce il confine C piatto versionato per input ad accesso casuale, output in streaming, cancellazione, avanzamento, diagnostica e ciclo di vita degli handle opachi