美文网首页
java将多张图片合并转为PDF

java将多张图片合并转为PDF

作者: _FireFly_ | 来源:发表于2020-10-09 10:57 被阅读0次

    所需jar包:com.lowagie.text

    package weaver.gy.util;
    
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
    
    import javax.imageio.ImageIO;
    
    import com.lowagie.text.BadElementException;
    import com.lowagie.text.Document;
    import com.lowagie.text.DocumentException;
    import com.lowagie.text.Image;
    import com.lowagie.text.Rectangle;
    import com.lowagie.text.pdf.PdfWriter;
    
    /**
     * 将多张图片合并转为PDF;需要用到iTextpdf包,
     * 
     * @author 浴缸
     * 
     */
    public class PrintToPdfUtil {
        /**
         * 
         * @param imageFolderPath
         *            图片文件夹地址
         * @param pdfPath
         *            PDF文件保存地址
         * 
         */
        public static void toPdf(String imageFolderPath, String pdfPath) {
            try {
                // 图片文件夹地址
                // String imageFolderPath = "D:/Demo/ceshi/";
                // 图片地址
                String imagePath = null;
                // PDF文件保存地址
                // String pdfPath = "D:/Demo/ceshi/hebing.pdf";
                // 输入流
                FileOutputStream fos = new FileOutputStream(pdfPath);
                // 创建文档
                Document doc = new Document(null, 0, 0, 0, 0);
                //doc.open();
                // 写入PDF文档
                PdfWriter.getInstance(doc, fos);
                // 读取图片流
                BufferedImage img = null;
                // 实例化图片
                Image image = null;
                // 获取图片文件夹对象
                File file = new File(imageFolderPath);
                File[] files = file.listFiles();
                // 循环获取图片文件夹内的图片
                for (File file1 : files) {
                    if (file1.getName().endsWith(".png")
                            || file1.getName().endsWith(".jpg")
                            || file1.getName().endsWith(".gif")
                            || file1.getName().endsWith(".jpeg")
                            || file1.getName().endsWith(".tif")) {
                        // System.out.println(file1.getName());
                        imagePath = imageFolderPath + file1.getName();
                        System.out.println(file1.getName());
                        // 读取图片流
                        img = ImageIO.read(new File(imagePath));
                        // 根据图片大小设置文档大小
                        doc.setPageSize(new Rectangle(img.getWidth(), img
                                .getHeight()));
                        // 实例化图片
                        image = Image.getInstance(imagePath);
                        // 添加图片到文档
                        doc.open();
                        doc.add(image);
                    }
                }
                // 关闭文档
                doc.close();
            } catch (IOException e) {
                e.printStackTrace();
            } catch (BadElementException e) {
                e.printStackTrace();
            } catch (DocumentException e) {
                e.printStackTrace();
            }
        }
        public static void main(String[] args) {
            long time1 = System.currentTimeMillis();
            toPdf("D:/Demo/ceshi/", "D:/Demo/pdf/hebing.pdf");
            long time2 = System.currentTimeMillis();
            int time = (int) ((time2 - time1)/1000);
            System.out.println("执行了:"+time+"秒!");
        }
    
    }
    
    

    相关文章

      网友评论

          本文标题:java将多张图片合并转为PDF

          本文链接:https://www.haomeiwen.com/subject/lbqlpktx.html