图片合成pdf

java-util 专栏收录该内容
4 篇文章 0 订阅

图片url下载

public class DownloadPictureUtil {
    /**
     * 下载图片
     * @param urlPath 图片 https:d22dw2.jpg
     * @param path ./temp
     */
    public static void downloadPicture(String urlPath, String path) {
        try {
            URL url = new URL(urlPath);
            try {
                HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                connection.setRequestProperty("user-agent", "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.7 Safari/537.36");
                connection.setConnectTimeout(5000);
                connection.setReadTimeout(5000);
                connection.connect();
            } catch (IOException e) {
                e.printStackTrace();
                return;
            }
            try (DataInputStream dataInputStream = new DataInputStream(url.openStream());
                 FileOutputStream outputStream = new FileOutputStream(path)) {
                byte[] buffer = new byte[1024];
                int length;
                while ((length = dataInputStream.read(buffer)) > 0) {
                    outputStream.write(buffer, 0, length);
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

合成

引入maven地址

<!-- https://mvnrepository.com/artifact/com.itextpdf/itextpdf -->
    <dependency>
        <groupId>com.itextpdf</groupId>
        <artifactId>itextpdf</artifactId>
        <version>5.5.13.2</version>
    </dependency>
public class PrintToPdfUtil {
    /**
     * @param imageFolderPath 图片文件夹地址
     * @param pdfPath         PDF文件保存地址
     */
    public static void toPdf(String imageFolderPath, String pdfPath) {
        //创建文档
        Document doc = new Document();
        try (FileOutputStream fos = new FileOutputStream(pdfPath)) {
            doc.setMargins(0, 0, 0, 0);
            // 写入PDF文档
            PdfWriter.getInstance(doc, fos);
            doc.open();
            // 读取图片流
            BufferedImage img = null;
            // 实例化图片
            Image image = null;
            //获取图片文件夹对象
            File file = new File(imageFolderPath);
            File[] files = file.listFiles();
            // 循环获取图片文件夹内的图片
            for (File file1 : files) {
                // 读取图片流
                img = ImageIO.read(file1);
                // 根据图片大小设置文档大小
                doc.setPageSize(new Rectangle(img.getWidth(), img
                        .getHeight()));
                // 实例化图片
                image = Image.getInstance(file1.getAbsolutePath());
                doc.newPage();
                doc.add(image);
            }
        } catch (IOException | DocumentException e) {
            e.printStackTrace();
        }  finally {
            // 关闭文档
            doc.close();
        }
    }
}
  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值