ilaurillard
Committed by GitHub

fixes display problems (randomly disappearing text) with textfields (#1699)

@@ -141,12 +141,25 @@ class PdfCatalog extends PdfObject<PdfDict> { @@ -141,12 +141,25 @@ class PdfCatalog extends PdfObject<PdfDict> {
141 acroForm['/SigFlags'] = PdfNum(pdfDocument.sign?.flagsValue ?? 0) | 141 acroForm['/SigFlags'] = PdfNum(pdfDocument.sign?.flagsValue ?? 0) |
142 (acroForm['/SigFlags'] as PdfNum? ?? const PdfNum(0)); 142 (acroForm['/SigFlags'] as PdfNum? ?? const PdfNum(0));
143 final fields = (acroForm['/Fields'] ??= PdfArray()) as PdfArray; 143 final fields = (acroForm['/Fields'] ??= PdfArray()) as PdfArray;
  144 + final fontRefs = PdfDict();
144 for (final w in widgets) { 145 for (final w in widgets) {
  146 + if (w.annot is PdfTextField) {
  147 + // collect textfield font references
  148 + PdfTextField tf = w.annot as PdfTextField;
  149 + fontRefs.addAll(PdfDict.values(
  150 + {tf.font.name: tf.font.ref()}
  151 + ));
  152 + }
145 final ref = w.ref(); 153 final ref = w.ref();
146 if (!fields.values.contains(ref)) { 154 if (!fields.values.contains(ref)) {
147 fields.add(ref); 155 fields.add(ref);
148 } 156 }
149 } 157 }
  158 + if (fontRefs.isNotEmpty) {
  159 + acroForm['/DR'] = PdfDict.values( // "Document Resources"
  160 + {'/Font': fontRefs}
  161 + );
  162 + }
150 } 163 }
151 } 164 }
152 } 165 }