多图片生成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();
    }
}

 

转载于:https://www.cnblogs.com/Jason-Xiang/p/9990456.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值