java使用itextpdf将图片转换成pdf时DPI的问题

来源:互联网 发布:qt5高级编程pdf 编辑:程序博客网 时间:2024/05/18 11:08

在使用itext转换图片为PDF时,不论原文件的DPI为多少,转出的PDF的DPI均为72

使用Image类的setDpi方法也没用

解决方法如下

import com.itextpdf.text.*;import com.itextpdf.text.pdf.PdfWriter;import javax.imageio.ImageIO;import java.awt.image.BufferedImage;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;public class Img2Pdf1 {    public static void main(String[] args) {        try {            String imagePath = "C:\\test.jpg";            String pdfPath = "C:\\test.pdf";            BufferedImage img = ImageIO.read(new File(imagePath));            FileOutputStream fos = new FileOutputStream(pdfPath);            Document doc = new Document(null, 0, 0, 0, 0);            doc.setPageSize(new Rectangle(img.getWidth(), img.getHeight()));            Image image = Image.getInstance(imagePath);            float scalePercentage = (72 / 300f) * 100.0f;            image.scalePercent(scalePercentage, scalePercentage);            PdfWriter.getInstance(doc, fos);            doc.open();            doc.add(image);            doc.close();        } catch (IOException e) {            e.printStackTrace();        } catch (BadElementException e) {            e.printStackTrace();        } catch (DocumentException e) {            e.printStackTrace();        }    }}

主要是加了这两句:

float scalePercentage = (72 / 300f) * 100.0f;image.scalePercent(scalePercentage, scalePercentage);

其他代码请参考:

http://blog.csdn.net/haunghui6579/article/details/8900987

阅读全文
0 0
原创粉丝点击