Windows anotasyon FDF ve XFDF exchange'i
Windows dosya işleri ve hpdf_document_execute_json_v1, eşlenmiş anotasyonları dışa aktarır ve XFDF anotasyonlarını kimikli Windows transaction köprüsü üzerinden ekler
Eşlenmiş türler ve property'ler, native anotasyon XFDF'siyle paylaşılır; sınırlı ikili eklenti/ses stream'leri, Unicode zengin içerikler, popup nesneleri ve ileri yanıtlar dâhil
Dosya işleri
{
"schemaVersion": 1, "type": "annotations.import", "format": "xfdf",
"input": "source.pdf", "annotationInput": "annotations.xfdf",
"output": "annotated.pdf", "password": "owner",
"annotationLimits": {"maxBytes": 1048576, "maxAnnotations": 1000},
"budget": {"memoryBytes": 268435456, "outputBytes": 134217728,
"timeMilliseconds": 60000, "resultBytes": 16777216}
}
annotations.export, aynı formatı, girdiyi, çıktıyı ve isteğe bağlı şifreyi kullanır; PDF yerine UTF-8 XFDF yazarak; import, annotationInput gerektirir
Çıktı, PDF girdisini, XFDF girdisini veya verilen trust/kanıt dosyalarını, mevcut bir hard link dâhil alias etmemelidir; yayın, münhasır geçici bir kardeş ayırır, sınırlı sonuçları doğrular, adayı flush eder ve kapatır, sonra hedefi atomik olarak değiştirir
Hata ve cancellation, mevcut eksiksiz hedefi korur ve işlemin geçici dosyasını kaldırır
Orijinal V1 callback'leri
hotpdf_abi.h'den değişmemiş hpdf_operation_v1'i ve hpdf_io_v1'i kullanın; anotasyon exchange'i yazı tipi uzantısı gerektirmez
Hedef PDF'i önce hpdf_document_load_from_io ile yükleyin; import, XFDF'yi InputIO'dan okur, aday PDF'i OutputIO'ya yazar ve sınırlı JSON'u ResultIO'ya yazar; export, aktif sahipli PDF'i okur ve XFDF'yi OutputIO'ya yazar
Şifreli girdi için, yüklenmiş PDF'i kimiklemek için kullanılan işlem şifresini tekrarlayın; bu işlem, önceki yükleme çağrısından örtük bir şifre korumaz
Yalnızca başarılı PDF ve sonuç callback'leri ve ardından gelen nihai cancellation checkpoint'i, yeni belgeyi ve sahipli revizyonu benimser; başarısız girdi, çıktı veya sonuç callback'leri, hatalı XML, tükenen sınırlar ve cancellation önceki context'i korur
Callback'ler, sonraki bir hatadan önce aday baytları alabilir; çağıranın sahipliği hedefini, yalnızca HPDF_STATUS_OK döndükten sonra yayınlayın
Politika, sınırlar ve sonuçlar
Import, mevcut imza bütünlüğünü ve ESS imzalayan bağını kimikler; P1 ve P2 sertifikasyonu anotasyon değişikliklerini reddederken P3, orijinal imzalı baytları koruyan bir anotasyon revizyonuna izin verir
AES-256 R5/R6 import'ları, şifreleme parametrelerini ve orijinal revizyon önekini korur; boş bir import, politikayı kimikler ve tam güncel baytları korur
signaturePolicy, Windows form-data exchange'i'nde anlatılan mevcut Boolean trust/timestamp/revocation gereksinimlerini ve açık trust yollarını kabul eder
annotationLimits, maxBytes, maxAnnotations, maxNodes, maxDepth ve maxWorkingBytes'i düşürebilir; değerler, pozitif tamsayı JSON sayılarıdır ve hesaplanan varsayılanları yükseltemez
Working, çıktı, sonuç, nesne ve sayfa bütçeleri de uygulanır; callback işlemleri, ek daha sıkı bir son tarih olarak elapsedMilliseconds kabul eder
Export, annotationCount, skippedAnnotationCount, decodedAttachmentBytes ve outputBytes bildirir; import, updated, outputBytes ve mapped-annotations-v1'e eşit annotationProfile bildirir
Sınırlar
Capabilities, anotasyon exchange'ini file-job ve execute-json-v1 üzerinden duyurur — append-only import, genel appearanceImport=false ve scoped stampAppearanceImport=true ile
Standard stamp appearance transport'u, gerçek Form stream'lerini ve sınırlı asiklik yazı-tipi, görsel ve grafik kaynaklarını base64 yazılan XML üzerinden korur
Genel XFDF AP sözdizimi, XFDF anotasyon değiştirme/kaldırma ve daha geniş XFDF action'ları ayrı işler olarak kalır; uzak GoToR action'ları ve yerel destination'lar mevcut sınırlı profillerini kullanır
Genel ExecuteLoadedOperation ve eski job-handle callback kaydı, ayrı giriş noktalarıdır; Pascal çağıranları, açık transaction sınıfını kullanabilir
İkili FDF exchange
Aynı dosya işleri ve V1 callback'leri format="fdf" kabul eder; dosya import'ları annotationInput'tan ikili FDF okur ve export'lar seçilen çıktıya ikili FDF yazar
FDF nesne-graf profili, verilen appearance kaynaklarını ve paylaşılan indirect nesneleri korur ve aynı sayfada eşleşen boş olmayan bir anotasyon NM'iyle değiştirmeyi destekler
FDF import'u annotationProfile="pdf-object-graph-v1" döndürür; updated gerçek anotasyon değişikliklerini sayar ve eşdeğer bir import, kesin mevcut revizyonu korur
FDF, pozitif tamsayı annotationLimits kontrollerine maxObjects ekler ve mevcut kimlik doğrulamalı politikayı, sınırlı aday yayınını ve callback ownership kurallarını kullanır
Pascal çağıranları THPDFWindowsFormDataTransaction.ExportAnnotationsFDF ve ImportAnnotationsFDF'yi kullanabilir; ChangedAnnotations bu profil için gerçek değişiklikleri raporlar
Boş olmayan FDF Fields ve gömülü Differences ayrı işlem gerektirir ve yayınlamadan önce yalnızca-anotasyon işlemlerini başarısız kılar
Windows anotasyon kaldırma, eşlenmiş XFDF append semantiğini değiştirmeden kesin sayfa-ve-NM kimlikleri için ayrı hazırlanmış bir transaction ve JSON işi sağlar