[
https://issues.apache.org/jira/browse/PDFBOX-3752?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Travis Schneeberger updated PDFBOX-3752:
----------------------------------------
Attachment: fdpAttachment2-example-flattened.pdf
Flattened File
> PDVariableText text color changes to be the same as the background color
> after flattening
> -----------------------------------------------------------------------------------------
>
> Key: PDFBOX-3752
> URL: https://issues.apache.org/jira/browse/PDFBOX-3752
> Project: PDFBox
> Issue Type: Bug
> Affects Versions: 2.0.5
> Reporter: Travis Schneeberger
> Fix For: 2.0.6
>
> Attachments: fdpAttachment2-example-flattened.pdf, fdpAttachment2.pdf
>
>
> PDVariableText text color changes to be the same as the background color
> after flattening. This effectively makes the text hidden and appear to be
> lost.
> This includes field types such as ListBox and TextField. I don't believe I
> have tested a combo box.
> For example:
> {code}
> try(PDDocument pdfDocument = PDDocument.load(new
> File("/Users/travis/Desktop/fdpAttachment2.pdf"))) {
> final PDDocumentCatalog docCatalog =
> pdfDocument.getDocumentCatalog();
> final PDAcroForm acroForm = docCatalog.getAcroForm();
> final PDField textField = acroForm.getField("Subaward Number");
> textField.setValue("12345");
> final PDField listBoxField = acroForm.getField("Contact for
> carryforward");
> listBoxField.setValue("Administrative Contact");
> //when flattening with refreshAppearances, a NPE will occur if
> each widget doesn't have a
> //PDAppearanceDictionary instance with a normal PDAppearanceEntry
> instance set PDFBOX-3751
> pdfDocument.getDocumentCatalog().getAcroForm().getFields()
> .stream()
> .flatMap(f -> f.getWidgets().stream())
> .filter(w -> w.getAppearance() == null)
> .forEach(w -> {
> final PDAppearanceDictionary appearance = new
> PDAppearanceDictionary(new COSDictionary());
> appearance.setNormalAppearance(new
> PDAppearanceEntry(new COSDictionary()));
> w.setAppearance(appearance);
> });
> pdfDocument.getDocumentCatalog().getAcroForm().flatten(pdfDocument.getDocumentCatalog().getAcroForm().getFields(),
> true);
>
> pdfDocument.save("/Users/travis/Desktop/fdpAttachment2-example-flattened.pdf");
> }
> {code}
> Notice in the attached fdpAttachment2-example-flattened.pdf, the fields are
> correctly set but the text is not visible.
> If I execute the same code but do not flatten, the text is visible. See
> attached fdpAttachment2-example-flattened.pdf
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]