Hi
I have PDF forms which when opened and rendered as an image with PDFBox
don't display the contents/values of all the populated fields. However
the same PDF files render all fields correctly in Acrobat and Edge.
Specifically it seem that text fields that appear to render each letter in
a box (combing?) are displayed with PDFBox, but 'unspaced' textfield
values are not rendered.
I would like to know if there is some way that I can detect that a field
won't be rendered and to correct it via PDFBox code before rendering.
Additional information:
The PDF forms originate from other independent organizations, which are
consumed and populated by my application.
I've attached stripped down versions (just three fields) of one of these
forms, namely EmptyForm.pdf (unpopulated) as consumed by my application
and then PopulatedForm.pdf after field processing and then saved (all via
PDFBox API).
Below basic PDFBox code that I use to achieve this:
try ( var pdfDoc = PDDocument.load( new File("EmptyForm.pdf") ) )
{
var pdForm = pdfDoc.getDocumentCatalog().getAcroForm();
pdForm.setNeedAppearances( true ); //*1
for ( var field : pdForm.getFields() )
{
var fldValue = getValueFor( field.getPartialName() );
field.setValue( fldValue );
}
pdForm.refreshAppearances(); //*1
var pages = new PDFRenderer( pdfDoc );
var pgImage = pages.renderImage(0);
// display pgImage: only two fields have been rendered NOT three ?
pdfDoc.save( "PopulatedForm.pdf" );
}
catch ( IOException IO )
{
IO.printStackTrace();
}
//*1 Without these two lines Acrobat and Edge also exhibit the same
behavior as PDFBox
This happens using JRE 11 and PDFBox 2.0.24, 2.0.27, as well as 3.0.0
alpha3
Thanks in advance
Jurgen
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@pdfbox.apache.org
For additional commands, e-mail: users-h...@pdfbox.apache.org