Configuración de trabajos JSON
THPDFJobProcessor acepta un documento JSON que describe operaciones PDF ordenadas y devuelve un resultado JSON con el estado por operación
Operaciones admitidas
merge combina varios PDF de entrada en un único archivo de salida mediante AppendPagesFromDocument
split extrae rangos de páginas de un PDF de entrada en archivos de salida independientes mediante ExtractLoadedPagesToPDF
optimise vuelve a comprimir los flujos FlateDecode y LZWDecode con un umbral mínimo de ahorro
encrypt aplica cifrado AES-256, AES-128, RC4-128 o RC4-40 con contraseñas especificadas por el llamador y tipo de clave
validate ejecuta una política de validación integrada y devuelve el texto del informe
ocr.layer crea texto buscable mediante el motor ASCII integrado por defecto o adaptadores locales de Tesseract/RapidOCR CLI y DLL configurados explícitamente; vea la configuración de trabajos OCR externos
Esquema JSON
La entrada debe contener un único valor JSON completo con separadores válidos, contenedores cerrados, escapes de cadena válidos y solo espacios en blanco JSON fuera de las cadenas; el contenido sobrante y los números fuera del rango finito de Double se rechazan
El parser acepta como máximo 64 niveles anidados de valores, contando el valor raíz como primer nivel; los trabajos malformados o excesivamente anidados fallan antes de que se ejecute cualquier operación, y los valores parcialmente parseados se liberan
La entrada es un objeto con una matriz operations; cada operación tiene un campo type y parámetros específicos del tipo
La salida es un objeto con una matriz results; cada resultado lleva type, status (ok, error o skipped) y campos específicos de la operación
Los valores de cadena preservan los caracteres Unicode escapados, incluido \u0000; los números finitos usan un punto decimal independiente de la configuración regional y pueden serializarse fuera del rango con signo de 64 bits
Los valores numéricos se almacenan como Double y siguen la precisión de conversión de coma flotante del runtime del compilador, de modo que los enteros más allá de su rango entero exacto pueden redondearse en la entrada; GetInt y GetInt64 devuelven el valor por defecto suministrado cuando el valor redondeado queda fuera de su rango entero con signo
Presupuestos por operación
Cada operación puede contener un objeto budget con límites memoryBytes, timeMilliseconds, objectCount, decompressionRatio y outputBytes
{"operations":[{"type":"optimise","input":"in.pdf","output":"out.pdf",
"budget":{"memoryBytes":268435456,"timeMilliseconds":30000,
"objectCount":1000000,"decompressionRatio":200,"outputBytes":1073741824}}]}
Una violación de límite devuelve status=budget-exceeded además de metric, observed, limit y elapsedMilliseconds sin abortar las operaciones posteriores
Los presupuestos de memoria también se aplican a la contabilidad de descodificación por flujo y por documento para que la expansión esté acotada antes de retener búferes grandes
API de identificador opaco
HPDFDocCreate devuelve un THPDFDocHandle opaco que envuelve una instancia de THotPDF; HPDFDocLoadFromFile, HPDFDocGetPageCount, HPDFDocSaveLoadedDocument y HPDFDocRunJob operan sobre el identificador; HPDFDocDestroy lo libera
Estos asistentes Pascal compatibles a nivel de código fuente siguen disponibles para los llamadores de Delphi y C++Builder
ABI de devolución de llamada C estable de HotPDF proporciona el límite C plano versionado para entrada de acceso aleatorio, salida en flujo, cancelación, progreso, diagnósticos y ciclo de vida de identificadores opacos