pdfbox-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From John Hewson <j...@jahewson.com>
Subject Re: After using 'PrinterJob' to print a PDF form, the form fields are empty (PDFBox 2.0.0)
Date Wed, 18 May 2016 16:21:21 GMT

> On 17 May 2016, at 12:18, Maruan Sahyoun <sahyoun@fileaffairs.de> wrote:
> 
> Hi,
> 
>> Am 17.05.2016 um 17:04 schrieb Timo Rumland <timo.rumland@digitalys.de>:
>> 
>> Hello,
>> 
>> after migrating from PDFBox 1.8 to 2.0.0, printing a PDF form via
>> 'PrinterJob' and ' PDFPrintable ', in which I filled out the form fields via
>> PDFBox, results in a PDF file (or a physical print) with the form fields
>> empty.
>> 
> 
> the form fields value is set but the appearance stream for the form field (what you see)
is not updated as the
> NeedAppearances flag is set to true. PDFBox (currently) handles it that it doens't update
the appearance  stream
> of the form field in that case (that should probably be changed).

Yeah - it seems like it would be ok for PDFBox to update the appearance stream, even though
NeedAppearances is true.

— John

> What you can do is set NeedApparances to false, update the field and afterwards set the
value to true again.
> 
> 
> BR
> Maruan
> 
> 
>> With PDFBox 1.8, the following simple code worked:
>> 
>> 
>> ----------
>> 
>> File sourcePdfForm = new File( "g:/test-form.pdf" );
>> File resultPdfForm = new File( "g:/test-form_out.pdf" );
>> 
>> // Load the source PDF form file
>> PDDocument pdDocument = PDDocument.load( sourcePdfForm );
>> PDDocumentCatalog pdDocumentCatalog = pdDocument.getDocumentCatalog();
>> PDAcroForm pdAcroForm = pdDocumentCatalog.getAcroForm();
>> 
>> // Setting PDF field content in "textfield01"
>> PDField pdField = pdAcroForm.getField( "textfield01" );
>> pdField.setValue( "test content" );
>> 
>> pdDocument.save( resultPdfForm );
>> pdDocument.close();
>> 
>> // Open the resulting PDF file, which shows the content in the PDF field
>> "textfield01"
>> Desktop.getDesktop().open( resultPdfForm );
>> 
>> 
>> // Now open the resulting file again, printing it with the default printer
>> // No matter if the default printer is an PDF printer (like PDFCreator) or
>> // an actual physical printer, the content of the field "textfield01" is
>> empty
>> 
>> pdDocument = PDDocument.load( resultPdfForm );
>> 
>> PrinterJob printerJob = PrinterJob.getPrinterJob();
>> printerJob.setJobName( "printerJob" );
>> printerJob.setPrintService( PrintServiceLookup.lookupDefaultPrintService()
>> );   
>> printerJob.setPrintable( new PDFPrintable( pdDocument ) );
>> printerJob.print( new HashPrintRequestAttributeSet( MediaSizeName.ISO_A4 )
>> );
>> 
>> pdDocument.close();
>> 
>> ----------
>> 
>> -- What this code sample does --
>> 
>> As you can see, this is a test case where I first load a source PDF form,
>> setting the value of a form field and save the resulting PDF file. After
>> that I load the resulting PDF file and use a PrinterJob to print it on the
>> default printer.
>> 
>> 
>> -- The problem --
>> 
>> Now using PDFBox 2.0.0: No matter what the default printer is - a PDF
>> printer like PDFCreator or a physical printer - the form fields of the
>> printed out PDF file are empty
>> 
>> Interestingly, opening the resulting PDF form 'test-form_out.pdf' (see line
>> 'Desktop.getDesktop().open( resultPdfForm );') in any PDF viewer (Adobe
>> Acrobat Reader DC, PDF XChange Viewer etc.) shows the correct form field
>> content for field 'textfield01', which is 'test content'.
>> 
>> The test PDF form file I use is a really simple form, containing only a
>> label and the form field named "testfield01". If you wish, you can download
>> 'test-form.pdf' here:
>> 
>> * https://goo.gl/VMiohj
>> 
>> As mentioned, with PDFBox 1.8 I was able to print out PDF forms via a
>> 'PrinterJob' with form field contents.
>> 
>> 
>> -- Related posts --
>> 
>> There are several posts or bug reports regard empty form fields, like these:
>> 
>> *
>> http://stackoverflow.com/questions/14541647/pdfbox-set-visible-when-printing
>> (not providing a valid solution in my case)
>> *
>> http://stackoverflow.com/questions/24149361/form-field-values-set-with-pdfbo
>> x-not-visible-in-adobe-reader (my PDF form is a AcroForm and has no XFA
>> data)
>> * https://issues.apache.org/jira/browse/PDFBOX-71 (setting
>> 'pdAcroForm.getCOSObject().setItem( COSName.getPDFName( "NeedAppearances" ),
>> COSBoolean.TRUE );' did not help in my case)
>> 
>> Unfortunately, none of these did help.
>> 
>> 
>> 
>> Any advice on this problem is highly appreciated
>> 
>> 
>> 
>> Thanks a lot for your help!
>> 
>> 
>> Best regards,
>> Timo
>> 
>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@pdfbox.apache.org
>> For additional commands, e-mail: users-help@pdfbox.apache.org
>> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@pdfbox.apache.org
> For additional commands, e-mail: users-help@pdfbox.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@pdfbox.apache.org
For additional commands, e-mail: users-help@pdfbox.apache.org


Mime
View raw message