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