Windows orijinal yazılan rich form doldurma
Windows dosya işleri ve hpdf_document_execute_json_v1, sıradan metin, choice ve button güncellemelerinin yanında richTextRuns içeren forms.fill istekleri kabul eder; tüm field'lar tek bir authenticated aday PDF paylaşır
Orijinal yazılan run'lar, native appearance composer'a doğrudan ulaşır; AP üretimi, serialize edilmiş RV renk temsili üzerinden round-trip yapmaz; düz V, standart rich RV ve gerçek AP birlikte hazırlanır
İstek
{
"schemaVersion": 1,
"type": "forms.fill",
"fontFamilies": ["DejaVu Sans", "DejaVu Serif Condensed"],
"fields": [
{"name": "Input", "richTextRuns": [
{"text": "Original typed precision", "fontFamily": "DejaVu Sans",
"fontStyle": "regular", "fontSize": 12.123456,
"color": [0.123456, 0.234567, 0.345678]},
{"text": "Another paragraph", "fontFamily": "DejaVu Serif Condensed",
"fontStyle": "boldItalic", "fontSize": 14.125,
"paragraphBreakBefore": true, "alignment": "center",
"underline": true, "strikeOut": false}
]},
{"name": "Plain", "value": "Changed scalar"},
{"name": "Choice", "values": ["B", "C"]},
{"name": "Check", "value": "Yes"}
]
}
Her field, richTextRuns veya bir scalar value veya value'lar sağlar; richTextRuns'un yanındaki opsiyonel bir value, yazılan paragraph'lar arasındaki carriage return'ler dâhil native türetilmiş düz metni tam olarak eşleşmelidir; serialize edilmiş richText, yazılan-run girdisi değildir
Her run, text gerektirir ve fontStyle, fontSize, color, underline, strikeOut, paragraphBreakBefore ve alignment kabul eder; fontStyle regular, bold, italic veya boldItalic'tir; alignment left, center veya right'tır; RGB bileşenleri sıfırdan bire kesirli sayılardır
Run boyutları pozitif ve en fazla 4096 punto olmalıdır; eksik boyut, field fontSize'ını veya 12 punto kullanır; native PDF sayısal formatting hâlâ uygulanırken, standart RV CSS renkleri sekiz-bit bileşenlere serialize eder
Field appearance option'ları, fontSize, padding, characterSpacing, wordSpacing ve paintWhiteBackground içerir; gerçek AP üretimi zorunludur — appearance=false geçersizdir
Gerçek yazı tipi programları
Bir field fontFamilies array'i, operation array'ini geçersiz kılar; yapılandırılmış array'ler, bir ile on altı arasında boş-olmayan geçerli family label içerir; eşleştirme ASCII büyük-küçük harfini katlar ve diğer Unicode'u birebir karşılaştırır; açık bir run fontFamily, yapılandırılmış bir label ile eşleşmelidir ve eksik bir run label ilk family'yi seçer
fontFamilies olmadan, orijinal tek-family path kullanılabilir kalır; yazı tipi callback label'ı, field fontFamily'dan, operation fontFamily'dan veya DejaVu Sans'tan gelir; orijinal tek-family run'lar, run fontFamily'yı atlar
Dosya işleri, input, output ve fonts ekler; fonts, her yapılandırılmış family label'ını regular, bold, italic ve boldItalic dosya path'lerine map eder; yalnızca kullanılan style'lar ve scalar görünümler için gereken regular yüz yüklenir; dosya path'leri output'a alias olmamalıdır
Versiyonlu C ABI çağıranları, mevcut hpdf_form_data_operation_v1 uzantısını kullanır ve onun yazı tipi callback'inden readable hpdf_io_v1 tabloları döndürür; family label'lar UTF-8 ve style value'ları 0 ile 3 arasıdır; tüm gerçek programlar, görünümler birleştirilmeden önce sınırlı owned baytlara kopyalanır
Orijinal V1 sembolleri, temel yapı boyutları ve opsiyonel uzantı offset'leri değişmeden kalır; family/style asset'leri tek bir istek içinde cache'lenir ve field'lar arasında paylaşılır — aynı owned tahsisi tekrar tekrar ücretlendirmeden
Opt-in fallbackFontFamilies=true, gerçek sağlanan family'ler arasında tüm-grapheme fallback uygular; yazılan run'lar, sıralı bir fontFamilyCandidates array tutabilir — bildirilen adaylar, yapılandırılmış sıradan önce değerlendirilir; istek kalıtımı ve dört-style callback yüklemesi için bkz. Windows sağlanan-family rich yazı tipi fallback
Mevcut graf ve yayımlama
InputIO yokken, C ABI kendi owned yüklenmiş revizyonunu ve gerçek bekleyen grafiğini kullanır; opsiyonel bir InputIO, replacement bir PDF sağlar — herhangi bir yazı tipi callback'inden önce private olarak kopyalanır ve doğrulanır; ne ödünç alınan input mutation'ı ne de başarısız bir replacement, commit edilmiş context'i değiştirebilir
OutputIO ve ResultIO zorunludur; gerçek aday PDF ve result JSON, C ABI belge ve kaynağı takas etmeden önce ikisi de başarılı şekilde bitmelidir — ardından nihai cancellation checkpoint gelir
Başarısız bir callback, aday baytlarını zaten almış olabilir; döndürülen status sıfırdan-farklı olduğunda çağıranlar bu baytları atmalıdır; önceden commit edilmiş kütüphane context'i değişmeden kalır
Dosya işleri, istenen output'un atomik replacement'ından önce eksiksiz adayı ve sınırlı reply'ı stage eder; eksik bir yazı tipi, politika başarısızlığı, cancellation veya kapasite başarısızlığı mevcut hedefi korur
Politikalar ve result
Mevcut signature integrity, DocMDP P1/P2/P3, FieldMDP kilitleri, read-only flag'ler ve AES form-fill izinleri, native authenticated engine üzerinden uygulanır; signaturePolicy, Windows form import'larıyla aynı açık trust, timestamp ve revocation ayarlarını kabul eder
Read-only aynı-girdili bir güncelleme, yalnızca gerçek AP operator'leri, yazı tipleri, kaynaklar ve field value'ları eşdeğer olduğunda başarılı olur; sıkıştırılmış AP stream'leri ve kanonik-olmayan eşdeğer RV desteklenir; gerçek bir style değişikliği, RV rengi aynı CSS value'suna quantize etse bile yine de değişikliktir
Gerçekten değişmemiş bir istek, politika authentication'ından sonra hazırlanan mevcut revizyonun kesin baytlarını yayımlar; bekleyen graf edit'leri, karşılaştırmadan önce o mevcut revizyonda gerçekleştirilir
Başarılı reply'lar, gerçek hazırlanan adaydan typedRichText=true, typedRichProfile=original-typed-runs-v1, updated, fieldCount, fontBytes ve fields içerir; formDataExchange.typedRichFill, bu uygulanan entry point'leri anlatır
Her fields item, sıradan adı, scalar value'yı ve fieldType özetini tutar; array'le desteklenen bir choice bu özette boş scalar value'ya sahiptir, tam seçimi ise kayıtlı PDF'te ve sonraki FDF/XFDF export'ta kalır
Doğrudan ExecuteLoadedOperation iş facade'i ve legacy HPDFDocRunJob handle/yazı-tipi callback uzantısı ayrı işler olarak kalır; bu binding, anotasyon, embedded-file, action veya incremental-FDF interchange eklemez
İlgili konular
FillTypedData, Windows transaction, Native karışık yazılan güncellemeler, Windows FDF/XFDF exchange