iText图像调整大小 [英] iText Image Resize

查看:172
本文介绍了iText图像调整大小的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个水印,我想把它放入我的PDF格式。水印是.bmp图像,并且是2290 x 3026.我在尝试调整此图片以适应页面方面遇到了很多麻烦,是否有人有任何建议?



< pre class =lang-java prettyprint-override> Document document = new Document();
PdfWriter.getInstance(document,new FileOutputStream(result.pdf));
document.open();
document.add(new Paragraph(hello));
document.close();
PdfReader reader = new PdfReader(result.pdf);
int number_of_pages = reader.getNumberOfPages();
PdfStamper pdfStamper = new PdfStamper(reader,new FileOutputStream(result_watermark.pdf));
//通过pdfStamper获取PdfContentByte类型。
Image watermark_image = Image.getInstance(abstract(0307).bmp);
int i = 0;
watermark_image.setAbsolutePosition(0,0);
watermark_image.scaleToFit(826,1100);
System.out.println(watermark_image.getScaledWidth());
System.out.println(watermark_image.getScaledHeight());
PdfContentByte add_watermark;
while(i< number_of_pages){
i ++;
add_watermark = pdfStamper.getUnderContent(i);
add_watermark.addImage(watermark_image);
}
pdfStamper.close();

这是 getScaled()方法。

  826.0  - 宽度
1091.4742 - 高度

我会与你们分享pdf的图片,但不幸的是我不能。



应该我尝试使用.jpg代替?我真的不知道iText如何处理不同的图像扩展。

解决方案

您可以使用另一种方法:手动调整图像大小 (即通过图像处理软件)而不是通过iText以编程方式。



由于最终尺寸似乎是硬编码的,因此您可以使用已调整大小的图像,并在每次为PDF文档添加水印时节省一些处理时间。


I have a watermark that I would like to put into my pdf. The watermark is a .bmp image, and is 2290 x 3026. I am having a lot of trouble trying to resize this picture to fit the page, does anyone have any suggestions?

Document document = new Document(); 
PdfWriter.getInstance(document, new FileOutputStream("result.pdf")); 
document.open(); 
document.add(new Paragraph("hello")); 
document.close(); 
PdfReader reader = new PdfReader("result.pdf"); 
int number_of_pages = reader.getNumberOfPages(); 
PdfStamper pdfStamper = new PdfStamper(reader, new FileOutputStream("result_watermark.pdf")); 
// Get the PdfContentByte type by pdfStamper. 
Image watermark_image = Image.getInstance("abstract(0307).bmp"); 
int i = 0; 
watermark_image.setAbsolutePosition(0, 0);
watermark_image.scaleToFit(826, 1100);
System.out.println(watermark_image.getScaledWidth());
System.out.println(watermark_image.getScaledHeight()); 
PdfContentByte add_watermark; 
while (i < number_of_pages) { 
    i++; 
    add_watermark = pdfStamper.getUnderContent(i); 
    add_watermark.addImage(watermark_image); 
} 
pdfStamper.close();

Here is the output for the getScaled() methods.

826.0 - Width
1091.4742 - Height

I would share the picture of the pdf with you guys but unfortunately I can't.

Should I try using a .jpg instead? I don't really know how well iText handles different image extensions.

解决方案

You could use another approach : resize the image "manually" (i.e. through an image processing software) instead of programmatically through iText.

Since the final dimension seems hardcoded, you could use an already resized image and save yourself some processing time every time you watermark PDF documents.

这篇关于iText图像调整大小的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆