pdfbox-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Timo Rumland" <timo.ruml...@digitalys.de>
Subject After using 'PrinterJob' to print a PDF form, the form fields are empty (PDFBox 2.0.0)
Date Tue, 17 May 2016 15:04:42 GMT
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.

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


Mime
View raw message