Portable XFA password appearances
Unit: HPDFXFAHeadless
HPDFXFAWriteHeadlessPDF consumeert XFA passwordEdit-velden als native tekst-widgets met de PDF-password-vlag en een embedded-font-gemaskeerde appearance op Windows en Linux
De appearance bevat één sterretje per Unicode-scalar-waarde: een supplementary character gerepresenteerd door een UTF-16-surrogate-paar produceert één sterretje, terwijl combining marks en ZWJ elk diens eigen sterretje bijdragen
De native /V behoudt de complete authored Unicode-waarde; appearance-masking levert geen encryptie en verwijdert die waarde niet uit de PDF
Zo produceert A😀B drie sterretjes, en produceert é er twee omdat het combinerende accent een aparte scalar is
Limieten en annulering
De adapter checkt annulering tijdens het tellen van scalars en checkt het resterende geaggregeerde glyph-budget vóór het toewijzen van de maskerstring
TXFAHeadlessPDFResult.GlyphUnits telt de echt gegenereerde sterretjes voor password-appearances; de bestaande UTF-16-accounting voor gewone tekst en andere appearance-consumers is ongewijzigd
Twee supplementary characters passen in een resterend MaxGlyphs-budget van twee; een budget van één faalt vóór masker-allocatie
De originele waarde blijft onderworpen aan invoer- en object-byte-limieten, en alle velden delen het geaggregeerde appearance-budget
Preparatie-, budget- en annuleringsfalen laten de destination-positie, -lengte en bestaande bytes van de aanroeper ongewijzigd; destination-schrijffouten volgen het eigen partiele-write-gedrag van de stream
Verificatie
Tests/Linux/XFAHeadlessPasswordTests.pas en de Windows- en Linux-password-runners verifiëren exacte budgetten, annuleringsgrenzen, stream-preservatie en retry-gedrag
De onafhankelijke verifier checkt native waarden, vlaggen, echte AP CID-sequenties, ToUnicode en embedded glyph-ID's, en rendert en extraheert daarna de opgeslagen PDF's met MuPDF
Automatic XFA creation beschrijft de andere native veld- en draw-consumers