I am seeing the same behavior that Dick is seeing with Tillman's file in Preview (Version 10.1 (944.6.16.1)), but not with a file of my own.
In the past two weeks I was asked to write program to fill in a PDF form from a file of name:value pairs, and flatten it. I used ((PDCheckBox)pdField).check() and ((PDCheckBox)pdField).unCheck() for the checkboxes and pdField.setValue(value) for others of field type "Btn" and for "Tx", then flattened and saved the result with acroForm.flatten(); pdfDocument.save(outpdf); pdfDocument.close(); The resulting file in truly flat. I cannot alter the checkboxes or any other field in Preview. The original form was created on a Mac with PDFpenPro, but I don't know the version. I can post my code if desired, but I can't release the PDF without permission, and the person responsible for it is out of the office all next week. On Sat, Feb 22, 2020 at 2:33 PM Dick Martin <rtmar...@nycap.rr.com> wrote: > Aleksandar and Tilman, > I was curious as I use MacOS. I opened Tilman's result file in Preview. I > was indeed able to place a checkmark in the checkboxes. Interestingly, I > could also drag the checkmark around out of the box. I opened the file > (saved in Preview with 2 checkboxes checked) with Adobe Reader (Mac), > Acrobat X (Win7), and PDFCreator(from Nuance; Win7). I all 3 of those, the > checkboxes were disabled (couldn't set a checkmark) but, interestingly, I > still could drag the checkmark out of the box. So, it does look like > idiosyncratic behavior of Mac Preview app. > Dick > > On Sat, Feb 22, 2020 at 1:16 PM Tilman Hausherr <thaush...@t-online.de> > wrote: > > > Am 22.02.2020 um 18:33 schrieb Aleksandar Simic: > > > Hello Tilman > > > > > > On Sat, Feb 22, 2020 at 4:08 PM Tilman Hausherr <thaush...@t-online.de > > > > > wrote: > > > > > >> What PDFBox version are you using? > > >> > > > I was using 2.0.16 > > > https://github.com/dotemacs/pdfboxing/blob/flatten-form/project.clj#L7 > > > > > > I tested it with the trunk and it works fine. > > > Here is my Java code: > > > https://gist.github.com/ff9fb8ccf11abeb2ac6c1c461f2c1eb9 > > > > > > Compiled it with PDFBox 2.0.18 and commons-logging 1.1.2. > > > > > > Opening it in macOS' Preview PDF viewer, I can still check the > > checkboxes. > > > But *not* in Adobe's Acrobat Reader DC version 2020.006.20034. > > > > > > The upgraded the Clojure project and the behaviour is the same: > > > - I can check the checkboxes in Preview > > > - I can't check the checkboxes in Acrobat Reader DC > > > > > > What PDF viewer did you use to verify the flattening ? > > > > > > Adobe Reader DC. > > > > Here's my result file: > > > > http://www.filedropper.com/interactiveform-saved > > > > I looked with PDFDebugger, there are no more checkbox fields. > > > > Please try with that file. > > > > If my file brings the same effect, then I'd say this is a weird behavior > > of MacOS Preview. Maybe it transforms anything that looks like a > > checkbox into a field? > > > > > > > > > > Btw using getFields() is not correct (see javadoc why) > > > Looking at: > > > > > > > > > https://pdfbox.apache.org/docs/2.0.13/javadocs/org/apache/pdfbox/pdmodel/interactive/form/PDAcroForm.html#getFields-- > > > > > > (Note: 2.0.13 is the latest documentation linked from > > > https://pdfbox.apache.org/ ) > > > > > > Is the reason that .getFields returns only the top level fields and not > > the > > > nested ones? > > > So I'll have to loop through them to flatten all the child fields? > > > > > > No, this is more a general observation. I don't think you have to set > > then readonly at all. > > > > Tilman > > > > > > > > > > > > > > Thank you for your time > > > Aleksandar > > > > > > > > > Am 22.02.2020 um 16:45 schrieb Aleksandar Simic: > > >>> Hello PDFBox users > > >>> > > >>> I'm trying to flatten a PDF form so that it's no longer editable. > > >>> > > >>> I can flatten the text fields, but the checkboxes are still editable > > >>> (you're able to check them). > > >>> > > >>> I am doing this in Clojure, but that should not (I hope) do anything > > >> special > > >>> I get a PDF, get its forms and then I set them to read only. > > >>> > > >>> Is there a step that I'm missing? > > >>> > > >>> The code in question is here: > > >>> > > >>> > > >> > > > https://github.com/dotemacs/pdfboxing/commit/d62a3da18de258a5ca596b22cfa42d4552de9d60 > > >>> The form I'm trying to edit is here: > > >>> > > >>> > > >> > > > https://github.com/dotemacs/pdfboxing/blob/flatten-form/test/pdfs/interactiveform.pdf > > >> > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: users-unsubscr...@pdfbox.apache.org > > For additional commands, e-mail: users-h...@pdfbox.apache.org > > > > > -- "Hell hath no limits, nor is circumscrib'd In one self-place; but where we are is hell, And where hell is, there must we ever be" --Christopher Marlowe, *Doctor Faustus* (v. 111-13)