JSON Job Yapılandırması
THPDFJobProcessor, sıralı PDF işlemlerini tanımlayan bir JSON belgesi kabul eder ve işlem başına durum içeren bir JSON sonuç döndürür
Desteklenen işlemler
merge, AppendPagesFromDocument kullanarak birden çok girdi PDF'ini tek bir çıktı dosyasında birleştirir
split, ExtractLoadedPagesToPDF kullanarak bir girdi PDF'inden sayfa aralıklarını ayrı çıktı dosyalarına çıkarır
optimise, FlateDecode ve LZWDecode stream'lerini asgari tasarruf eşiğiyle yeniden sıkıştırır
encrypt, çağıranın belirlediği password'lar ve key type ile AES-256, AES-128, RC4-128 veya RC4-40 şifrelemesi uygular
validate, yerleşik bir validation politikası çalıştırır ve rapor metnini döndürür
ocr.layer, aranabilir bir PDF çıktısı üretir; ayrıntılı davranış için iç ve dış OCR sayfasına bakın
JSON şeması
Girdi; geçerli ayraçlar, kapatılmış kapsayıcılar ve geçerli string escape'leriyle tek bir eksiksiz JSON değeri içermeli ve string'lerin dışında yalnızca JSON boşluğu barındırmalıdır. Sondaki ek içerik ile sonlu Double aralığının dışındaki sayılar reddedilir
Parser, kök değeri birinci seviye sayarak en fazla 64 iç içe değer seviyesi kabul eder; bozuk veya aşırı iç içe işler herhangi bir işlem çalıştırılmadan başarısız olur ve kısmen ayrıştırılmış değerler serbest bırakılır
Girdi, bir operations array'i içeren bir nesnedir; her işlem bir type alanı ve türe özgü parametreler taşır
Çıktı, bir results array'i içeren bir nesnedir; her sonuç type, status (ok, error veya skipped) ve işleme özgü alanlar taşır
String değerler, \u0000 dahil escape edilmiş Unicode karakterleri korur; sonlu sayılar yerel ayardan bağımsız ondalık ayırıcı kullanır ve işaretli 64 bit aralığın dışında serileştirilebilir
Sayısal değerler Double olarak saklanır ve derleyici çalışma zamanının floating-point dönüşüm hassasiyetini izler; bu nedenle kesin tamsayı aralığının ötesindeki tamsayılar girdide yuvarlanabilir. Yuvarlanan değer işaretli tamsayı aralıklarının dışındaysa GetInt ve GetInt64 verilen varsayılanı döndürür
İşlem başına bütçeler
Her işlem, memoryBytes, timeMilliseconds, objectCount, decompressionRatio ve outputBytes sınırlarını içeren bir budget nesnesi barındırabilir
{"operations":[{"type":"optimise","input":"in.pdf","output":"out.pdf",
"budget":{"memoryBytes":268435456,"timeMilliseconds":30000,
"objectCount":1000000,"decompressionRatio":200,"outputBytes":1073741824}}]}
Bir sınır ihlali, sonraki işlemleri durdurmadan status=budget-exceeded değerini ve metric, observed, limit ile elapsedMilliseconds alanlarını döndürür
Bellek bütçeleri, stream başına ve belge çözme muhasebesine de uygulanır; böylece büyük tamponlar tutulmadan önce genişleme sınırlanır
Opak handle API'si
HPDFDocCreate, bir THotPDF instance'ını saran opak bir THPDFDocHandle döndürür; HPDFDocLoadFromFile, HPDFDocGetPageCount, HPDFDocSaveLoadedDocument ve HPDFDocRunJob bu handle üzerinde çalışır; HPDFDocDestroy ise onu serbest bırakır
Bu kaynak uyumlu Pascal helper'ları, Delphi ve C++Builder çağıranları için erişilebilir kalır
HotPDF Kararlı C Callback ABI'si, random-access girdi, streaming çıktı, iptal, ilerleme, diagnostic'lar ve opak handle yaşam döngüsü için düz, sürümlü bir C sınırı sağlar