2014-10-03 91 views
1

我有一个大的图像,我想打印我的PDF文档中,我写了如下:PDF图像调整大小渐渐模糊只获得了部分在PDFBOX

InputStream in = new FileInputStream(new File("C:/mylargeimage.jpg")); 
PDJpeg img = new PDJpeg(doc, in); 
img.setHeight(100); 
img.setWidth(100); 
contentStream.drawImage(img,50,pageYaxis); 

我正在打印的图像,但图像越来越模糊,没有得到完整的形象。我需要将图像调整为100X100。我该如何克服这一点?请帮助我们吗?我曾经讨论过很多,但没有一点清楚。

+0

您是否尝试在将图像传递给PDJpeg之前缩放图像?确保你保持比例,否则你的形象将变得模糊。 – Daniel 2014-10-03 07:15:48

+0

在将其传递给PDJPeg之前进行缩放是一个非常糟糕的主意,因为这会降低质量。 – 2014-10-04 06:02:37

回答

3

你试过这样做吗?

InputStream in = new FileInputStream(new File("C:/mylargeimage.jpg")); 
PDJpeg img = new PDJpeg(doc, in); 
contentStream.drawXObject(img, 50, pageYaxis, 100, 100); 

drawImage的Javadoc说,它会在图像的默认大小借鉴。为drawXObject的Javadoc说:

绘制在x,y坐标和一定 宽度和高度x对象(形式或图像)。

调用图像本身setWidthsetHeight会,我相信,只有改变什么PDFBox的认为是图像的真实大小 - 所以只需要100×100像素的图像作为信源。