pdfbox-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jonathan Carr <jonathan.c...@york.ac.uk>
Subject Problems running PDFBox within a servlet container
Date Fri, 01 Aug 2014 17:20:53 GMT
Hello all

I've written code to take an existing PDF containing a form, populate
values in some of the fields, and then output the results as a new PDF. As
a standalone test class this works great, however as soon as put the code
into a servlet (I wish to serve the resulting PDF to users as a download) I
get an error. The PDFBox-related code and PDF document being used are
exactly the same in both cases.

Clearly there's a difference between the servlet and non-servlet
environments, but so far I've failed to find it. Does anyone have any
suggestions as to where I should be looking?

I'm running OpenJDK 7 and pdfbox-1.8.6, with Jetty as my servlet container.

Example code:

InputStream in = MyServlet.class.getResourceAsStream("Form.pdf");
PDDocument doc = PDDocument.load(in);
PDDocumentCatalog cat = doc.getDocumentCatalog();
PDAcroForm acroForm = cat.getAcroForm();

PDField field = acroForm.getField("myField");
field.setValue("someValue");


The following error is thrown when setValue() is called:

java.io.IOException: null
at org.apache.pdfbox.filter.FlateFilter.decode(FlateFilter.java:110)
~[pdfbox-app-1.8.6.jar:na]
at org.apache.pdfbox.cos.COSStream.doDecode(COSStream.java:342)
~[pdfbox-app-1.8.6.jar:na]
at org.apache.pdfbox.cos.COSStream.doDecode(COSStream.java:254)
~[pdfbox-app-1.8.6.jar:na]
at org.apache.pdfbox.cos.COSStream.getUnfilteredStream(COSStream.java:188)
~[pdfbox-app-1.8.6.jar:na]
at
org.apache.pdfbox.pdfparser.PDFStreamParser.<init>(PDFStreamParser.java:122)
~[pdfbox-app-1.8.6.jar:na]
at
org.apache.pdfbox.pdmodel.interactive.form.PDAppearance.getStreamTokens(PDAppearance.java:186)
~[pdfbox-app-1.8.6.jar:na]
at
org.apache.pdfbox.pdmodel.interactive.form.PDAppearance.getStreamTokens(PDAppearance.java:159)
~[pdfbox-app-1.8.6.jar:na]
at
org.apache.pdfbox.pdmodel.interactive.form.PDAppearance.setAppearanceValue(PDAppearance.java:266)
~[pdfbox-app-1.8.6.jar:na]
at
org.apache.pdfbox.pdmodel.interactive.form.PDVariableText.setValue(PDVariableText.java:131)
~[pdfbox-app-1.8.6.jar:na]
...

Caused by:

java.util.zip.DataFormatException: incorrect header check
at java.util.zip.Inflater.inflateBytes(Native Method) ~[na:1.7.0_55]
at java.util.zip.Inflater.inflate(Inflater.java:259) ~[na:1.7.0_55]
at java.util.zip.Inflater.inflate(Inflater.java:280) ~[na:1.7.0_55]
at org.apache.pdfbox.filter.FlateFilter.decompress(FlateFilter.java:129)
~[pdfbox-app-1.8.6.jar:na]
at org.apache.pdfbox.filter.FlateFilter.decode(FlateFilter.java:102)
~[pdfbox-app-1.8.6.jar:na]
...


Many thanks
-Jonathan

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message