[ https://issues.apache.org/jira/browse/PDFBOX-5878?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17879822#comment-17879822 ]
Tilman Hausherr edited comment on PDFBOX-5878 at 9/6/24 9:30 AM: ----------------------------------------------------------------- I added this for the missing fonts, which is just a guess that it's the correct font {code:java} PDAcroForm acroForm = doc.getDocumentCatalog().getAcroForm(); acroForm.setNeedAppearances(false); PDFont font1 = PDType0Font.load(doc, new FileInputStream("c:/windows/fonts/times.ttf"), false); PDFont font2 = PDType0Font.load(doc, new FileInputStream("c:/windows/fonts/timesbd.ttf"), false); PDFont font3 = PDType0Font.load(doc, new FileInputStream("c:/windows/fonts/arial.ttf"), false); acroForm.getDefaultResources().put(COSName.getPDFName("TimesNewRomanPSMT"), font1); acroForm.getDefaultResources().put(COSName.getPDFName("TimesNewRomanPS-BoldMT"), font2); acroForm.getDefaultResources().put(COSName.getPDFName("Helvetica"), font3); for (PDField field: acroForm.getFieldTree()) { if (field instanceof PDTextField) { if (((PDTextField) field).isMultiline()) { field.setValue("XXX"); } } } {code} But when setting a value, this happens in AppearanceGeneratorHelper.setAppearanceContent(): {code} if (bmcIndex == -1) { // append to existing stream writer.writeTokens(tokens); writer.writeTokens(COSName.TX, BMC); } {code} So it appends to the existing appearance steam. This is the result after calling setValue("XXX"): {code} q Q q 9.613575 0.4609071 430.9062 41.31819 re W n q 0.9781767 0 0 -0.9781767 -87.43936 478.0107 cm BT 11 0 0 -11 102.2182 458.5622 Tm /TT21 1 Tf [ (N) -0.2 (a) 0.2 (m) 0.2 (e) 0.2 ( c) 0.2 (ha) 0.2 (nge) 0.2 (d 09/) 0.2 (26/) 0.2 (2020) ] TJ ET Q Q q 6.43259 0.3084 434.0872 41.6232 re W n q 0.9853977 0 0 0.9853977 9.388783 29.51731 cm BT 11 0 0 11 0 0 Tm /TT18 1 Tf [ (M) -0.2 (y na) 0.2 (m) 0.2 (e) 0.2 ( w) -0.2 (a) 0.2 (s) -0.2 ( c) 0.2 (ha) 0.2 (nge) 0.2 (d on 10/) 0.2 (14/) 0.2 (2017 a) 0.2 (t) 0.2 ( ) 18.1 (W) 111 (A) 55 ( D) -0.2 (O) -0.2 (L) 37.3 ( i) 0.2 (n F) -0.2 (e) 0.2 (de) 0.2 (ra) 0.2 (l) 0.2 ( ) 18.1 (W) 80.2 (a) 0.2 (y w) -0.2 (i) 0.2 (t) 0.2 (h proof of P) -0.2 (hi) 0.2 (l) 0.2 (i) 0.2 (ppi) 0.2 (ne) 0.2 ( ) ] TJ ET Q q 0.9853977 0 0 0.9853977 9.388783 17.51355 cm BT 11 0 0 11 0 0 Tm /TT18 1 Tf [ (m) 0.2 (a) 0.2 (rri) 0.2 (a) 0.2 (ge) 0.2 ( c) 0.2 (e) 0.2 (rt) 0.2 (i) 0.2 (fi) 0.2 (c) 0.2 (a) 0.2 (t) 0.2 (e) 0.2 (.) ] TJ ET Q Q q 3.228123 0.1547671 437.2917 41.93047 re W n q 0.992672 0 0 0.992672 6.206139 29.5793 cm BT 11 0 0 11 0 0 Tm /TT19 1 Tf [ (M) -0.2 (y na) 0.2 (m) 0.2 (e) 0.2 ( w) -0.2 (a) 0.2 (s) -0.2 ( c) 0.2 (ha) 0.2 (nge) 0.2 (d on 10/) 0.2 (14/) 0.2 (2017 a) 0.2 (t) 0.2 ( ) 18.1 (W) 111 (A) 55 ( D) -0.2 (O) -0.2 (L) 37.3 ( i) 0.2 (n F) -0.2 (e) 0.2 (de) 0.2 (ra) 0.2 (l) 0.2 ( ) 18.1 (W) 80.2 (a) 0.2 (y w) -0.2 (i) 0.2 (t) 0.2 (h proof of P) -0.2 (hi) 0.2 (l) 0.2 (i) 0.2 (ppi) 0.2 (ne) 0.2 ( ) ] TJ ET Q q 0.992672 0 0 0.992672 6.206139 17.48693 cm BT 11 0 0 11 0 0 Tm /TT19 1 Tf [ (m) 0.2 (a) 0.2 (rri) 0.2 (a) 0.2 (ge) 0.2 ( c) 0.2 (e) 0.2 (rt) 0.2 (i) 0.2 (fi) 0.2 (c) 0.2 (a) 0.2 (t) 0.2 (e) 0.2 (.) ] TJ ET Q Q q 0 0 440.5198 42.24 re W n /Cs6 cs 0 sc q 1 0 0 1 3 29.64175 cm BT 11 0 0 11 0 0 Tm /TT20 1 Tf [ (M) -0.2 (y na) 0.2 (m) 0.2 (e) 0.2 ( w) -0.2 (a) 0.2 (s) -0.2 ( c) 0.2 (ha) 0.2 (nge) 0.2 (d on 10/) 0.2 (14/) 0.2 (2017 a) 0.2 (t) 0.2 ( ) 18.1 (W) 111 (A) 55 ( D) -0.2 (O) -0.2 (L) 37.3 ( i) 0.2 (n F) -0.2 (e) 0.2 (de) 0.2 (ra) 0.2 (l) 0.2 ( ) 18.1 (W) 80.2 (a) 0.2 (y w) -0.2 (i) 0.2 (t) 0.2 (h proof of P) -0.2 (hi) 0.2 (l) 0.2 (i) 0.2 (ppi) 0.2 (ne) 0.2 ( ) ] TJ ET Q q 1 0 0 1 3 17.46011 cm BT 11 0 0 11 0 0 Tm /TT20 1 Tf [ (m) 0.2 (a) 0.2 (rri) 0.2 (a) 0.2 (ge) 0.2 ( c) 0.2 (e) 0.2 (rt) 0.2 (i) 0.2 (fi) 0.2 (c) 0.2 (a) 0.2 (t) 0.2 (e) 0.2 (.) ] TJ ET Q Q /Tx BMC q -2.252 1 441.7718 40.24 re W n BT /TimesNewRomanPSMT 11 Tf /DeviceGray cs 0 sc -1.252 25.4319 Td (\000;\000;\000;) Tj ET Q EMC {code} So the XXX is there, but also all the previous content. was (Author: tilman): I added this for the missing fonts, which is just a guess that it's the correct font {code:java} acroForm.setNeedAppearances(false); PDFont font1 = PDType0Font.load(doc, new FileInputStream("c:/windows/fonts/times.ttf"), false); PDFont font2 = PDType0Font.load(doc, new FileInputStream("c:/windows/fonts/timesbd.ttf"), false); PDFont font3 = PDType0Font.load(doc, new FileInputStream("c:/windows/fonts/arial.ttf"), false); acroForm.getDefaultResources().put(COSName.getPDFName("TimesNewRomanPSMT"), font1); acroForm.getDefaultResources().put(COSName.getPDFName("TimesNewRomanPS-BoldMT"), font2); acroForm.getDefaultResources().put(COSName.getPDFName("Helvetica"), font3); {code} But when setting a value, this happens in AppearanceGeneratorHelper.setAppearanceContent(): {code} if (bmcIndex == -1) { // append to existing stream writer.writeTokens(tokens); writer.writeTokens(COSName.TX, BMC); } {code} So it appends to the existing appearance steam. This is the result after calling setValue("XXX"): {code} q Q q 9.613575 0.4609071 430.9062 41.31819 re W n q 0.9781767 0 0 -0.9781767 -87.43936 478.0107 cm BT 11 0 0 -11 102.2182 458.5622 Tm /TT21 1 Tf [ (N) -0.2 (a) 0.2 (m) 0.2 (e) 0.2 ( c) 0.2 (ha) 0.2 (nge) 0.2 (d 09/) 0.2 (26/) 0.2 (2020) ] TJ ET Q Q q 6.43259 0.3084 434.0872 41.6232 re W n q 0.9853977 0 0 0.9853977 9.388783 29.51731 cm BT 11 0 0 11 0 0 Tm /TT18 1 Tf [ (M) -0.2 (y na) 0.2 (m) 0.2 (e) 0.2 ( w) -0.2 (a) 0.2 (s) -0.2 ( c) 0.2 (ha) 0.2 (nge) 0.2 (d on 10/) 0.2 (14/) 0.2 (2017 a) 0.2 (t) 0.2 ( ) 18.1 (W) 111 (A) 55 ( D) -0.2 (O) -0.2 (L) 37.3 ( i) 0.2 (n F) -0.2 (e) 0.2 (de) 0.2 (ra) 0.2 (l) 0.2 ( ) 18.1 (W) 80.2 (a) 0.2 (y w) -0.2 (i) 0.2 (t) 0.2 (h proof of P) -0.2 (hi) 0.2 (l) 0.2 (i) 0.2 (ppi) 0.2 (ne) 0.2 ( ) ] TJ ET Q q 0.9853977 0 0 0.9853977 9.388783 17.51355 cm BT 11 0 0 11 0 0 Tm /TT18 1 Tf [ (m) 0.2 (a) 0.2 (rri) 0.2 (a) 0.2 (ge) 0.2 ( c) 0.2 (e) 0.2 (rt) 0.2 (i) 0.2 (fi) 0.2 (c) 0.2 (a) 0.2 (t) 0.2 (e) 0.2 (.) ] TJ ET Q Q q 3.228123 0.1547671 437.2917 41.93047 re W n q 0.992672 0 0 0.992672 6.206139 29.5793 cm BT 11 0 0 11 0 0 Tm /TT19 1 Tf [ (M) -0.2 (y na) 0.2 (m) 0.2 (e) 0.2 ( w) -0.2 (a) 0.2 (s) -0.2 ( c) 0.2 (ha) 0.2 (nge) 0.2 (d on 10/) 0.2 (14/) 0.2 (2017 a) 0.2 (t) 0.2 ( ) 18.1 (W) 111 (A) 55 ( D) -0.2 (O) -0.2 (L) 37.3 ( i) 0.2 (n F) -0.2 (e) 0.2 (de) 0.2 (ra) 0.2 (l) 0.2 ( ) 18.1 (W) 80.2 (a) 0.2 (y w) -0.2 (i) 0.2 (t) 0.2 (h proof of P) -0.2 (hi) 0.2 (l) 0.2 (i) 0.2 (ppi) 0.2 (ne) 0.2 ( ) ] TJ ET Q q 0.992672 0 0 0.992672 6.206139 17.48693 cm BT 11 0 0 11 0 0 Tm /TT19 1 Tf [ (m) 0.2 (a) 0.2 (rri) 0.2 (a) 0.2 (ge) 0.2 ( c) 0.2 (e) 0.2 (rt) 0.2 (i) 0.2 (fi) 0.2 (c) 0.2 (a) 0.2 (t) 0.2 (e) 0.2 (.) ] TJ ET Q Q q 0 0 440.5198 42.24 re W n /Cs6 cs 0 sc q 1 0 0 1 3 29.64175 cm BT 11 0 0 11 0 0 Tm /TT20 1 Tf [ (M) -0.2 (y na) 0.2 (m) 0.2 (e) 0.2 ( w) -0.2 (a) 0.2 (s) -0.2 ( c) 0.2 (ha) 0.2 (nge) 0.2 (d on 10/) 0.2 (14/) 0.2 (2017 a) 0.2 (t) 0.2 ( ) 18.1 (W) 111 (A) 55 ( D) -0.2 (O) -0.2 (L) 37.3 ( i) 0.2 (n F) -0.2 (e) 0.2 (de) 0.2 (ra) 0.2 (l) 0.2 ( ) 18.1 (W) 80.2 (a) 0.2 (y w) -0.2 (i) 0.2 (t) 0.2 (h proof of P) -0.2 (hi) 0.2 (l) 0.2 (i) 0.2 (ppi) 0.2 (ne) 0.2 ( ) ] TJ ET Q q 1 0 0 1 3 17.46011 cm BT 11 0 0 11 0 0 Tm /TT20 1 Tf [ (m) 0.2 (a) 0.2 (rri) 0.2 (a) 0.2 (ge) 0.2 ( c) 0.2 (e) 0.2 (rt) 0.2 (i) 0.2 (fi) 0.2 (c) 0.2 (a) 0.2 (t) 0.2 (e) 0.2 (.) ] TJ ET Q Q /Tx BMC q -2.252 1 441.7718 40.24 re W n BT /TimesNewRomanPSMT 11 Tf /DeviceGray cs 0 sc -1.252 25.4319 Td (\000;\000;\000;) Tj ET Q EMC {code} So the XXX is there, but also all the previous content. > pdf form field text gets blurred after flattening > ------------------------------------------------- > > Key: PDFBOX-5878 > URL: https://issues.apache.org/jira/browse/PDFBOX-5878 > Project: PDFBox > Issue Type: Bug > Components: AcroForm > Affects Versions: 2.0.28, 3.0.3 PDFBox > Environment: Mac Ventura, java 18 PDFBox 3.0.3, Tomcat 9 > Linux; version: 5.15.0-105-generic, java 17, Tomcat 9.0.93 > Reporter: Joseph Jezerinac > Priority: Major > Labels: Appearance > Attachments: Bildschirmfoto vom 2024-09-05 10-07-13.png, > beforeFlattening.pdf, flattened.pdf > > > After flattening a pdf acro form, value of some fields get blurred > {code:java} > PDDocument pdDocument = Loader.loadPDF(inFile, ""); > pdDocument.setResourceCache(new DefaultResourceCache()); > try { > boolean save = false; > if (pdDocument.isEncrypted()) { > pdDocument.setAllSecurityToBeRemoved(true); > save = true; > } > final PDDocumentCatalog pdDocumentCatalog = > pdDocument.getDocumentCatalog(); > if (pdDocumentCatalog != null) { > final PDAcroForm pdForm = pdDocumentCatalog.getAcroForm(); > if (pdForm != null) { > pdForm.flatten(); > save = true; > } > } > if (save) { > pdDocument.save(outFile); > } > } > catch (Exception e) {} > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@pdfbox.apache.org For additional commands, e-mail: dev-h...@pdfbox.apache.org