Portable XFA şifre appearance'ları
Birim: HPDFXFAHeadless
HPDFXFAWriteHeadlessPDF, XFA passwordEdit alanlarını, PDF şifre bayrağı ve gömülü-yazı tipi maskeli bir appearance ile native metin widget'ları olarak tüketir; Windows ve Linux'ta
Appearance, Unicode scalar değeri başına bir yıldız içerir: UTF-16 surrogate çiftiyle temsil edilen bir supplementary karakter tek yıldız üretirken combining işaretleri ve ZWJ her biri kendi yıldızına katkıda bulunur
Native /V, eksiksiz yazılmış Unicode değerini korur; appearance maskeleme şifreleme sağlamaz veya o değeri PDF'ten kaldırmaz
Örneğin A😀B üç yıldız üretir ve é iki üretir çünkü birleşen aksan ayrı bir scalardır
Sınırlar ve cancellation
Adapter, scalar'ları sayarken cancellation'ı denetler ve maske dizesini ayırmadan önce kalan toplam glyph bütçesini denetler
TXFAHeadlessPDFResult.GlyphUnits, şifre appearance'ları için gerçek üretilmiş yıldızları sayar; sıradan metin ve diğer appearance tüketicileri için mevcut UTF-16 muhasebesi değişmeden kalır
İki supplementary karakter, kalan iki MaxGlyphs bütçesine sığar; tek bütçe, maske tahsisinden önce başarısız olur
Orijinal değer, girdi ve nesne-baytı sınırlarına tabi kalır ve tüm alanlar toplam appearance bütçesini paylaşır
Hazırlık, bütçe ve cancellation hataları, çağıranın hedef konumunu, uzunluğunu ve mevcut baytlarını değişmeden bırakır; hedef yazma hataları stream'in kendi kısmi-yazma davranışını izler
Doğrulama
Tests/Linux/XFAHeadlessPasswordTests.pas ve Windows ile Linux şifre runner'ları, tam bütçeleri, cancellation sınırlarını, stream korumasını ve yeniden deneme davranışını doğrular
Bağımsız verifier, native değerleri, bayrakları, gerçek AP CID dizilerini, ToUnicode'ı ve gömülü glyph ID'leri denetler; sonra kaydedilmiş PDF'leri MuPDF ile render eder ve çıkarır
Otomatik XFA oluşturması, diğer native alan ve çizim tüketicilerini anlatır