zoukankan      html  css  js  c++  java
  • 多图片生成pdf文件

    这里记录多个图片合并生成一个pdf文件的方法。

    首先maven引入所需jar包:

    <dependency>
        <groupId>com.itextpdf</groupId>
        <artifactId>itextpdf</artifactId>
        <version>5.5.11</version>
    </dependency>

    代码实现如下:

    import com.itextpdf.text.Document;
    import com.itextpdf.text.DocumentException;
    import com.itextpdf.text.Image;
    import com.itextpdf.text.Rectangle;
    import com.itextpdf.text.pdf.PdfWriter;
    import org.junit.Test;
    
    import java.io.*;
    
    /**
     * Created by xiangzh on 2018/10/29.
     */
    public class pdfTest extends DemoApplicationTests {
    
        @Test
        public void exportTest() throws IOException, DocumentException {
            // 图片文件夹地址
            String imageFolderPath = "F:/imgtest/";
            // 图片地址
            String imagePath = null;
            // PDF文件保存地址
            String pdfPath = "F:/ceshi.pdf";
            FileOutputStream fos = new FileOutputStream(pdfPath);
    
            ByteArrayOutputStream out = new ByteArrayOutputStream();
    
            // 第一步:创建一个document对象。
            Document document = new Document();
            document.setMargins(0, 0, 0, 0);
            // 第二步:创建一个PdfWriter实例。
            PdfWriter.getInstance(document, fos);
            // 第三步:打开文档。
            document.open();
    
            // 实例化图片
            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")) {
                    imagePath = imageFolderPath + file1.getName();
                    System.out.println(file1.getName());
    
                    image = Image.getInstance(imagePath); //如果是网络图片,可以使用网络地址
                    image.setAlignment(Image.ALIGN_CENTER);
    
                    // 根据图片大小设置页面,一定要先设置页面,再newPage(),否则无效
                    document.setPageSize(new Rectangle(image.getWidth(), image.getHeight()));
                    document.newPage();
    
                    // 添加图片到文档
                    document.add(image);
                }
            }
            // 关闭文档
            document.close();
        }
    }
  • 相关阅读:
    错误C2665: “AfxMessageBox”: 2 个重载中没有一个可以转换所有参数类型
    为什么DW的可视化下看到的效果与浏览器的效果有所区别?
    font-family:黑体;导致css定义全部不起作用
    web标准中定义id与class有什么区别吗
    网页尺寸规范
    SEO为什么要求网页设计师用DIV+CSS布局网页?
    去掉CSS赘余代码,CSS可以更简洁
    解决IE6、IE7、Firefox兼容最简单的CSS Hack
    实战中总结出来的CSS常见问题及解决办法
    高效整洁CSS代码原则 (下)
  • 原文地址:https://www.cnblogs.com/Jason-Xiang/p/9990456.html
Copyright © 2011-2022 走看看