Divya George created PDFBOX-2086:
------------------------------------
Summary: Problem with creating image for pdf created from Word,
CutePDF
Key: PDFBOX-2086
URL: https://issues.apache.org/jira/browse/PDFBOX-2086
Project: PDFBox
Issue Type: Bug
Components: Rendering
Affects Versions: 2.0.0
Environment: Windows
Reporter: Divya George
Priority: Minor
Our application has a web service that needs to convert the first page of a pdf
document to a image resized image. I'm using the snapshot version 2.0.0 of
pdfbox to accomplish this. This works for some pdf documents, but when I create
a pdf document from Microsoft Word 2013 or CutePDF, it fails to generate the
resized image.
The final image displayed is this symbol: ÿØ
and this is the information displayed in the logs.
2014-05-14 17:29:45,662 DEBUG [http-bio-8080-exec-5] (TTFGlyph2D.java:227) -
ABCDEE+Calibri: Glyph not found:3
2014-05-14 17:29:45,663 DEBUG [http-bio-8080-exec-5] (PDFStreamEngine.java:246)
- processing substream token: PDFOperator{ET}
2014-05-14 17:29:45,663 DEBUG [http-bio-8080-exec-5] (PDFStreamEngine.java:246)
- processing substream token: PDFOperator{BT}
2014-05-14 17:29:45,663 DEBUG [http-bio-8080-exec-5] (PDFStreamEngine.java:246)
- processing substream token: COSInt{1}
2014-05-14 17:29:45,663 DEBUG [http-bio-8080-exec-5] (PDFStreamEngine.java:246)
- processing substream token: COSInt{0}
2014-05-14 17:29:45,663 DEBUG [http-bio-8080-exec-5] (PDFStreamEngine.java:246)
- processing substream token: COSInt{0}
2014-05-14 17:29:45,663 DEBUG [http-bio-8080-exec-5] (PDFStreamEngine.java:246)
- processing substream token: COSInt{1}
2014-05-14 17:29:45,663 DEBUG [http-bio-8080-exec-5] (PDFStreamEngine.java:246)
- processing substream token: COSFloat{72.024}
2014-05-14 17:29:45,664 DEBUG [http-bio-8080-exec-5] (PDFStreamEngine.java:246)
- processing substream token: COSFloat{684.1}
2014-05-14 17:29:45,664 DEBUG [http-bio-8080-exec-5] (PDFStreamEngine.java:246)
- processing substream token: PDFOperator{Tm}
2014-05-14 17:29:45,664 DEBUG [http-bio-8080-exec-5] (PDFStreamEngine.java:246)
- processing substream token: COSArray{[COSString{ }]}
2014-05-14 17:29:45,664 DEBUG [http-bio-8080-exec-5] (PDFStreamEngine.java:246)
- processing substream token: PDFOperator{TJ}
2014-05-14 17:29:45,664 DEBUG [http-bio-8080-exec-5] (Encoding.java:242) - No
character for name space
2014-05-14 17:29:45,665 DEBUG [http-bio-8080-exec-5] (TTFGlyph2D.java:227) -
ABCDEE+Calibri: Glyph not found:3
I tried changing the fonts in Word and also tried using CutePDF to generate the
PDF document, but still see the wrong output. Our application receives pdfs
from different sources and we have no control as to how the pdf is generated.
Here is the snippet of the code I use.
PDDocument pdf = PDDocument.loadNonSeq(new File(orginalFileName), null);
PDFRenderer renderer = new PDFRenderer(pdf);
// create the image
BufferedImage image = renderer.renderImageWithDPI(0, 96, ImageType.RGB);
BufferedImage scaledImage = new BufferedImage(width, height,
BufferedImage.TYPE_INT_ARGB);
Graphics2D graphics2D = scaledImage.createGraphics();
graphics2D.setRenderingHint(RenderingHints.KEY_INTERPOLATION,RenderingHints.VALUE_INTERPOLATION_BILINEAR);
graphics2D.drawImage(image, 0, 0, width, height, null);
graphics2D.dispose();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(scaledImage, "jpg", baos);
baos.flush();
baos.close();
pdf.close();
return baos;
If I write image to the buffered output stream,I get the original image, but it
fails when I use the resized image.
Please let me know if there is something I'm missing or if I should be using a
different method to create the image. The pdf that I use is attached.
Divya
--
This message was sent by Atlassian JIRA
(v6.2#6252)