JSON 작업 구성
THPDFJobProcessor는 순서 정해진 PDF 작업을 설명하는 JSON 문서를 수락하고, 작업별 상태를 가진 JSON 결과를 반환합니다
지원되는 작업
merge는 AppendPagesFromDocument를 사용하여 여러 입력 PDF를 단일 출력 파일로 결합합니다
split는 ExtractLoadedPagesToPDF를 사용하여 입력 PDF에서 페이지 범위를 별도의 출력 파일로 추출합니다
optimise는 최소 절약 임계값으로 FlateDecode 및 LZWDecode 스트림을 재압축합니다
encrypt는 호출자가 지정한 암호와 키 유형으로 AES-256, AES-128, RC4-128 또는 RC4-40 암호화를 적용합니다
validate는 내장 검증 정책을 실행하고 리포트 텍스트를 반환합니다
ocr.layer는 기본 내장 ASCII 엔진이나 명시적으로 설정된 로컬 Tesseract/RapidOCR CLI 및 DLL 어댑터를 통해 검색 가능한 텍스트를 만듭니다. 자세한 내용은 외부 OCR 작업 구성을 참고하세요
JSON 스키마
입력은 유효한 구분자와 닫힌 컨테이너, 유효한 문자열 이스케이프를 갖춘 완전한 JSON 값 하나만 담아야 하고 문자열 밖에는 JSON 공백만 올 수 있습니다. 뒤에 붙는 내용과 유한 Double 범위를 벗어나는 숫자는 거부됩니다
파서는 루트 값을 첫 단계로 세어 최대 64단계의 중첩 값을 받습니다. malformed이거나 지나치게 깊이 중첩된 작업은 어떤 operation도 실행되기 전에 실패하며, 부분적으로 파싱된 값은 해제됩니다
입력은 operations 배열이 있는 객체이며, 각 작업에는 type 필드와 유형별 매개 변수가 있습니다
출력은 results 배열이 있는 객체이며, 각 결과는 type, status(ok, error 또는 skipped) 및 작업별 필드를 전달합니다
문자열 값은 \u0000를 포함해 이스케이프된 Unicode 문자를 보존합니다. 유한 숫자는 locale에 의존하지 않는 소수점을 쓰고 부호 있는 64비트 범위 밖으로 직렬화될 수 있습니다
숫자 값은 Double로 저장되고 컴파일러 런타임의 부동소수점 변환 정밀도를 따르므로, 정확한 정수 범위를 넘는 정수는 입력에서 반올림될 수 있습니다. 반올림된 값이 부호 있는 정수 범위를 벗어나면 GetInt와 GetInt64는 지정된 기본값을 반환합니다
작업별 예산
모든 작업은 memoryBytes, timeMilliseconds, objectCount, decompressionRatio 및 outputBytes 제한이 있는 budget 객체를 포함할 수 있습니다
{"operations":[{"type":"optimise","input":"in.pdf","output":"out.pdf",
"budget":{"memoryBytes":268435456,"timeMilliseconds":30000,
"objectCount":1000000,"decompressionRatio":200,"outputBytes":1073741824}}]}
제한을 위반하면 이후 작업을 중단하지 않고 status=budget-exceeded와 함께 metric, observed, limit, elapsedMilliseconds를 반환합니다
메모리 예산은 스트림별 및 문서 디코드 계정에도 적용되므로 큰 버퍼를 보유하기 전에 확장이 바운딩됩니다
불투명 핸들 API
HPDFDocCreate는 THotPDF 인스턴스를 감싸는 불투명 THPDFDocHandle을 반환하며, HPDFDocLoadFromFile, HPDFDocGetPageCount, HPDFDocSaveLoadedDocument 및 HPDFDocRunJob은 핸들에서 작동하고, HPDFDocDestroy는 핸들을 해제합니다
이러한 소스 호환 Pascal 도우미는 Delphi 및 C++Builder 호출자에게 계속 제공됩니다
HotPDF 안정 C 콜백 ABI는 랜덤 액세스 입력, 스트리밍 출력, 취소, 진행, 진단 및 불투명 핸들 수명 주기에 대한 플랫 버전 지정 C 경계를 제공합니다