Windows FDF/XFDF Exchange

Windows dosya işleri ve hpdf_document_execute_json_v1, fdf ve xfdf için forms.export ve forms.import'ı, native scalar ve sınırlı rich XHTML/CSS codec'leriyle uygular

Dosya işleri

{
  "schemaVersion": 1, "type": "forms.import", "format": "xfdf",
  "input": "source.pdf", "output": "filled.pdf", "password": "owner",
  "formDataInput": "values.xfdf",
  "fonts": {
    "regular": "DejaVuSans.ttf", "bold": "DejaVuSans-Bold.ttf",
    "italic": "DejaVuSans-Oblique.ttf", "boldItalic": "DejaVuSans-BoldOblique.ttf"
  },
  "budget": {"memoryBytes": 268435456, "outputBytes": 134217728,
    "timeMilliseconds": 60000, "resultBytes": 16777216}
}

forms.export, input, output, format ve opsiyonel password kullanır; formDataInput veya fonts gerektirmez; dosya işleri, hedefin yanında münhasır bir aday reserve eder, onu flush eder ve kapatır, sınırlı result JSON'u doğrular, ardından hedefi atomik değiştirir

Eksik yazı tipleri, bozuk input, authentication veya politika başarısızlıkları, tükenmiş limitler ve başarısız yayım, mevcut eksiksiz hedefi korur; output, PDF'i veya form-data girdisini — hard link dâhil — alias etmemelidir

Adlandırılmış yazı tipi family'leri

forms.import, operation root'unda fontFamilies'i bir ile on altı arasında label'dan oluşan bir array olarak kabul eder; yokluğu, orijinal tek-family profili ve fontFamily callback label'ını korur

"fontFamilies": ["DejaVu Sans", "DejaVu Serif Condensed"],
"fonts": {
  "DejaVu Sans": {
    "regular": "DejaVuSans.ttf", "bold": "DejaVuSans-Bold.ttf",
    "italic": "DejaVuSans-Oblique.ttf", "boldItalic": "DejaVuSans-BoldOblique.ttf"
  },
  "DejaVu Serif Condensed": {
    "regular": "DejaVuSerifCondensed.ttf", "bold": "DejaVuSerifCondensed-Bold.ttf",
    "italic": "DejaVuSerifCondensed-Italic.ttf", "boldItalic": "DejaVuSerifCondensed-BoldItalic.ttf"
  }
}

Dosya işleri için, fonts, kesin yapılandırılmış label'larla key'lenen object'ler içerir; fontFamilies olmadan orijinal doğrudan style-path object'ini korur; yalnızca gerçek family/style programlarını okuyun — seçilen tüm yazı tipi baytları operation bütçesini paylaşır

Windows V1 callback'leri için, mevcut yazı tipi callback'i, her gerçek kanonik UTF-8 yapılandırılmış label'ı ve seçili style'ı alır; dört style'ın tümünü kullanan iki family, callback record'u değiştirmeden sekiz gerçek program isteği yapar

ASCII label harfleri büyük-küçük harf duyumsuz karşılaştırılırken diğer Unicode character'lar birebir karşılaştırılır; label'lar ayrık, boş-olmayan ve en fazla 128 UTF-16 code unit'tir — çevresinde whitespace, kontrol character'ları, eşleşmemiş surrogate'ler veya CSS quote/ayırıcı noktalaması olmadan

İlk yapılandırılmış family, scalar metin ve kalıtılan rich style'lar için default'tur; default olarak, CSS font-family listeleri, native codec'in first-known-family seçimini kullanır

Opt-in fallbackFontFamilies=true, sıralı inline CSS font-family adaylarını korur ve tüm-grapheme fallback için gerçek yapılandırılmış yüz/style programları yükler; yazılan adaylar, callback yüklemesi ve yalnızca-rich kapsam için bkz. Windows sağlanan-family rich yazı tipi fallback

Uygulanan result, richXMLProfile inline-xhtml-font-families-v1'i, yapılandırılmış fontFamilies array'ini ve family, style ve byte içeren gerçek fontFamilyStyles object'lerini raporlar; fontStyles orijinal object-array türünü korur ve byte sayılarını style'a göre özetler; fontBytes tüm gerçek programları sayar

Array olmadan, richXMLProfile inline-xhtml-v1'dir; karışık scalar ve orijinal yazılan-rich forms.fill, aşağıda anlatılan ayrı original-typed-runs-v1 binding'ini kullanır; eski iş yazı-tipi callback uzantısı ayrı takip işi olarak kalır

Versiyonlu Windows C callback'leri

hotpdf_abi_form_data.h dâhil edin; hpdf_form_data_operation_v1'i doldurun, operation.struct_size'ı eksiksiz boyutuna ayarlayın ve değişmeden operation prefix'ini hpdf_document_execute_json_v1'e geçirin

Opsiyonel yazı tipi callback'i, UTF-8 family baytları ve style 0 regular, 1 bold, 2 italic veya 3 boldItalic alır ve gerçek yazı tipi programı için eksiksiz bir hpdf_io_v1 read tablosu döndürür; rich data dört style'ın tümünü kullanırken tüm dört programı sağlayın

Scalar data, regular programı ister; fontFamily DejaVu Sans'a default'ludur; sağlanan yazı-tipi IO callback'leri ve user data, operation dönene kadar geçerli kalmalıdır; sıfırdan-farklı callback status'leri sticky'dir ve fallback retry olmadan yayılır

forms.import için, InputIO FDF/XFDF sağlar ve hedef zaten yüklenmiş olmalıdır; OutputIO aday PDF'i alır ve ResultIO sınırlı JSON alır; forms.export, orijinal V1 record'u kullanır ve FDF/XFDF'i OutputIO'ya yazar

Windows hpdf_document_load_from_io, eksiksiz input'u döndürmeden önce immutable bir owned kaynağa kopyalar; çağıran replacement'ı veya append'i, aktif yüklenmiş revizyonu veya onun sonraki form-data output'unu değiştiremez

Owned kaynaklar, arka plan rastgele okumaları için ayrı eşzamanlanmış bir handle kullanır — böylece prefetch, sıralı yayım cursor'unu taşıyamaz; aday belge, kaynağı yok edilmeden önce arka plan reader'larını serbest bırakır

Aktif context, hem output hem result callback'leri başarılı olduktan ve nihai cancellation checkpoint geçtikten sonra yalnızca değişir; callback başarısızlığı veya cancellation, adayı atar ve önceki belgeyi ve owned kaynağı korur

Bir callback, sonraki bir callback başarısız olmadan önce aday baytlarını almış olabilir; çağıranlar kendi output hedeflerini yalnızca execute function'ı HPDF_STATUS_OK döndürdükten sonra commit etmelidir

Orijinal V1 record layout'ları ve exported semboller değişmedendir; bu Windows uzantısı, native Linux'un yayımlanmış callback uzantısından ayrıdır

Bağlı entry point'ler, dosya iş işlemcisi ve hpdf_document_execute_json_v1'dir; eski HPDFDocRunJob callback record'u ve genel ExecuteLoadedOperation bu aşamada yazı-tipi uzantısı edinmez; Pascal çağıranları açık transaction class'ını kullanabilir

Field'lar, rich text ve politika

Desteklenen value'lar, iç-ice Unicode metin adlarını, checkbox ve radio export adlarını, multiselect array'lerini ve değişmemiş read-only value'ları içerir; /V, /RV ve gerçek AP kaynakları birlikte kaydedilir; bilinmeyen field'lar ve zorunlu field kısıtları transaction'ı başarısız kılar

Rich interchange, belgelenmiş sınırlı XHTML/CSS profilini ve gerçek sağlanan style yazı tiplerini kullanır; keyfi HTML'i, tüm CSS'i veya kısıtlanmamış rich XML desteğini iddia etmez

İmzalı AES R5/R6 güncellemeleri, eksiksiz orijinal prefix'i, encryption parametrelerini, kalıcı encryption identifier'ını ve mevcut CMS signature'ı korur; değişmemiş scalar veya rich import'lar, mevcut commit edilmiş revizyona byte-özdeştedir

Mevcut CMS integrity ve ESS signer binding'i, imzalı form güncellemelerinden önce doğrulanır; P2/P3 doldurma yalnızca gerçek kısıtları içinde mümkündür; P1, FieldMDP kilitleri ve değişmiş read-only field'lar yayımı reddeder

signaturePolicy, Boolean requireCAdES, requireTimestamp, requireAdobeRevocationInfo ve requireTimestampRevocation kabul eder; trustedCAFile, timestampCAFile, timestampCRLFile ve revocationCAFile, NUL'suz string'ler olmalı ve istenen denetimler için açık çağıran trust'i seçmelidir

C callback option'ları, signed evidence'ı maxEvidenceBytes ve maxEvidenceObjects üzerinden de sınırlar; trust doğrulaması, default signature integrity denetiminden ayrıdır

formData, maxBytes'ı, maxFields'ı, maxObjects'ı, maxDepth'i, maxValues'ı, maxValueCodeUnits'ı ve maxTotalCodeUnits'ı düşürebilir; bu kesin pozitif integer'lar, ayrıca working kapasitesine clamped edilir; budget objectCount ve pageCount, aday belgeleri sınırlar

budget.timeMilliseconds, operation deadline'ını ayarlar; Windows C callback'leri ayrıca daha sıkı ek bir sınır olarak elapsedMilliseconds kabul eder; cancellation, mevcut graf hazırlığı, form decoding, yazı-tipi okuma, CMS denetimleri, aday yükleme ve yayım sırasında poll edilir

Capabilities, gerçek format'ları, style'ları, immutable input'u ve transactional callback davranışını raporlar; eşlenmiş anotasyon XFDF exchange ayrı uygulanırken, gömülü FDF dosyaları, daha geniş action'lar ve incremental FDF belgeleri bitmemiş kalır

İlgili konular

Karışık scalar ve orijinal yazılan rich doldurma, dosya işleri ve execute-json-v1 üzerinden aynı authenticated Windows aday lifecycle'ını kullanır

Transaction class, Mevcut graf hazırlığı, Native form data

İç style sheet'leri, sınırlı selector'ları, importance'ı, specificity'yi ve kaynak sırasını gerçek imported rich value'lara ve kayıtlı görünümlere uygular; tekrar eşdeğer import'lar ve başarısız yayım, mevcut transaction garantilerini korur

richTextResources, mevcut işlem ve yazı tipi bağlarıyla gerçek Windows dosya işleri ve execute-json-v1 importları için bağlı ve import edilmiş CSS sağlar