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