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