国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Java實現(xiàn)圖片轉(zhuǎn)PDF

這篇具有很好參考價值的文章主要介紹了Java實現(xiàn)圖片轉(zhuǎn)PDF。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

某w*s圖片轉(zhuǎn)PDF還要收費,簡直不講武德!我啪的一下,很快啊,一段代碼搞定!

引入pom依賴

<dependency>
    <groupId>org.apache.pdfbox</groupId>
    <artifactId>pdfbox</artifactId>
    <version>2.0.24</version>
</dependency>

工具類文章來源地址http://www.zghlxwxcb.cn/news/detail-791555.html

import lombok.extern.slf4j.Slf4j;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.pdfbox.io.IOUtils;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import org.apache.pdfbox.pdmodel.common.PDRectangle;
import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject;

import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.*;
import java.util.ArrayList;
import java.util.List;

/**
 * 圖片轉(zhuǎn)PDF
 */
@Slf4j
public class ImageToPdfConverter {

    public static void main(String[] args) throws IOException {
        String imgFilePath = "E:\\STUDY\\1111.jpg";
        String pdfFilePath = "E:\\STUDY\\1111.pdf";
        downloadPdf(imgFilePath, pdfFilePath);
    }

    /**
     * 下載
     *
     * @param imgFilePath img文件路徑
     * @param filePath    文件路徑
     * @throws IOException ioexception
     */
    private static void downloadPdf(String imgFilePath, String filePath) {
        try {
            // 1.將本地的圖片轉(zhuǎn)成流形式
            File imgFile = new File(imgFilePath);
            byte[] imageBytes = readBytesFromFile(imgFile);

            // 2. 生成一頁 PDF document
            PDDocument document = new PDDocument();
            PDImageXObject image = PDImageXObject.createFromByteArray(document, imageBytes, "image");
            // 這里是你生成PDF自適應(yīng)圖片大小,不設(shè)置會默認(rèn)為A4
            PDRectangle pageSize = new PDRectangle(image.getWidth(), image.getHeight());
            PDPage page = new PDPage(pageSize);
            document.addPage(page);
            // 3.將 圖片 添加進(jìn)PDF document
            PDPageContentStream contentStream = new PDPageContentStream(document, page);
            float pageWidth = pageSize.getWidth();
            float pageHeight = pageSize.getHeight();
            float imageWidth = image.getWidth();
            float imageHeight = image.getHeight();
            float scale = Math.min(pageWidth / imageWidth, pageHeight / imageHeight);
            float scaledWidth = imageWidth * scale;
            float scaledHeight = imageHeight * scale;
            float x = (pageWidth - scaledWidth) / 2;
            float y = (pageHeight - scaledHeight) / 2;
            // 這里是將你的圖片填充入pdf頁
            contentStream.drawImage(image, x, y, scaledWidth, scaledHeight);
            contentStream.close();

            // 4. 保存PDF
            File outputFile = new File(filePath);
            File parentFolder = outputFile.getParentFile();
            if (parentFolder != null && !parentFolder.exists()) {
                parentFolder.mkdirs();
            }
            document.save(outputFile);
            document.close();
        } catch (Exception e) {
            log.error("pdf下載失敗,imgFilePath:{},filePath:{}", imgFilePath, filePath, e);
        }

    }

    /**
     * 從文件讀取字節(jié)
     *
     * @param file 文件
     * @return {@link byte[]}
     * @throws IOException ioexception
     */
    private static byte[] readBytesFromFile(File file) throws IOException {
        FileInputStream inputStream = new FileInputStream(file);
        byte[] bytes = IOUtils.toByteArray(inputStream);
        inputStream.close();
        return bytes;
    }


    private static byte[] downloadImage(String imageUrl) throws IOException {
        HttpClient httpClient = HttpClientBuilder.create().build();
        HttpGet httpGet = new HttpGet(imageUrl);
        HttpResponse response = httpClient.execute(httpGet);
        HttpEntity entity = response.getEntity();
        InputStream inputStream = entity.getContent();
        byte[] imageBytes = IOUtils.toByteArray(inputStream);
        inputStream.close();
        return imageBytes;
    }

    /**
     * 得到img字節(jié)列表
     *
     * @param filePath 文件路徑
     * @return {@link List}<{@link byte[]}>
     */
    private static List<byte[]> getImgByteList(String filePath) throws IOException {
        // 轉(zhuǎn)換
        List<byte[]> imageBytesList = new ArrayList<>();
        File folder = new File(filePath);
        File[] files = folder.listFiles();
        for (File file : files) {
            if (file.isFile() && isImage(file)) {
                byte[] imageBytes = convertImageToBytes(file);
                imageBytesList.add(imageBytes);
            }
        }
        return  imageBytesList;
    }

    private static boolean isImage(File file) {
        String fileName = file.getName().toLowerCase();
        return fileName.endsWith(".jpg") || fileName.endsWith(".jpeg") ||
                fileName.endsWith(".png") || fileName.endsWith(".gif") ||
                fileName.endsWith(".bmp");
    }

    private static byte[] convertImageToBytes(File file) throws IOException {
        BufferedImage image = ImageIO.read(file);
        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
        ImageIO.write(image, "jpg", outputStream);
        return outputStream.toByteArray();
    }


}

到了這里,關(guān)于Java實現(xiàn)圖片轉(zhuǎn)PDF的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • JAVA 實現(xiàn)PDF轉(zhuǎn)圖片格式

    JAVA 實現(xiàn)PDF轉(zhuǎn)圖片格式

    依賴: pdf存放路徑 正文開始: pdf轉(zhuǎn)換多張圖片、長圖 展示效果: 附加:小程序預(yù)覽wxml代碼

    2024年02月06日
    瀏覽(17)
  • java實現(xiàn)向PDF中插入圖片

    java實現(xiàn)向PDF中插入圖片

    目錄 一、場景 二、案例結(jié)果 三、環(huán)境準(zhǔn)備 四、引入的第三方j(luò)ar包坐標(biāo) 五、思路 六、單元測試代碼 七、總結(jié) ? ? ? ? 現(xiàn)有一個PDF文件、需向PDF中插入圖片 ? ? ? ? ? ? ?1、? maven3.8.6、jdk17 ?????????????2、PDF文件和一張圖片 ? ? ? ? ? ? ? ? 1、得到PDF文件流對象【

    2024年02月06日
    瀏覽(22)
  • java實現(xiàn)圖片、word、pdf等多文件融合到一個pdf(word轉(zhuǎn)pdf)

    本文主要介紹了srpingboot如何將 jpg、jpeg、png、pdf、docx、doc六種格式文件合并輸出成一個pdf文件 以及 word文檔如何轉(zhuǎn)換為pdf ,關(guān)鍵是 開源免費 在日常工作學(xué)習(xí)中免不了會涉及到將多種格式的文件合并為一個pdf或者是將word文檔、ppt、excel等轉(zhuǎn)換為pdf。廢話不多說,直接上代碼

    2024年02月15日
    瀏覽(21)
  • JAVA 實現(xiàn)PDF轉(zhuǎn)圖片(pdfbox版)

    JAVA 實現(xiàn)PDF轉(zhuǎn)圖片(pdfbox版)

    依賴: pdf存放路徑 正文開始: pdf轉(zhuǎn)換多張圖片、長圖 展示效果: 附加:小程序預(yù)覽wxml代碼 依賴: pdf存放路徑 正文開始: pdf轉(zhuǎn)換多張圖片、長圖

    2024年02月06日
    瀏覽(26)
  • PDF二維碼識別,PDF轉(zhuǎn)圖片再識別二維碼java實現(xiàn)

    實現(xiàn)步驟: 1.使用icepdf把pdf轉(zhuǎn)化為圖片 2.使用google的zxing識別圖片中的二維碼 包引用 代碼部分,一個類幾個方法就實現(xiàn)了,還是比較簡單

    2024年03月15日
    瀏覽(23)
  • Java使用ftl模板文件生成Word,以及Word轉(zhuǎn)換圖片或Pdf工具類

    Java使用ftl模板文件生成Word,以及Word轉(zhuǎn)換圖片或Pdf工具類

    一、寫在前面 最近在項目中使用打印功能,發(fā)現(xiàn)這個功能我已經(jīng)寫過多次了,下面這個文章的發(fā)步日期在2020年,不得不感慨時間之快啊。 https://blog.csdn.net/weixin_43238452/article/details/109636200?spm=1001.2014.3001.5501 下面介紹一下應(yīng)用場景:這次項目依舊是springboot項目,使用ftl模版生

    2024年02月15日
    瀏覽(38)
  • Java實現(xiàn)Word文檔轉(zhuǎn)PDF,PDF轉(zhuǎn)Word,PDF轉(zhuǎn)Excel,PDF轉(zhuǎn)換工具

    java實現(xiàn)word文檔轉(zhuǎn)PDF,PDF轉(zhuǎn)word 解決只能轉(zhuǎn)換4頁問題 解決每頁頭部存在水印問題 引入依賴 破解的jar包 鏈接: https://pan.baidu.com/s/1MO8OBuf4FQ937R9KDtofPQ 提取碼: 4tsn 源碼路徑:https://download.csdn.net/download/weixin_43992507/88215577 像流讀取文件這些要關(guān)閉釋放,不然異常報錯文件的讀取不會

    2024年02月13日
    瀏覽(30)
  • 用Java實現(xiàn)Word文件轉(zhuǎn)PDF工具,兼容Linux

    主要使用了pdfbox Apache PDFBox | A Java PDF Library以及spire.doc Free Spire.Doc for Java |? Java Word 組件 (e-iceblue.cn)兩個工具包 最近在做根據(jù)模板生成word文檔,等wrod生成好后,人家又要pdf文件,索性將生成的wrod轉(zhuǎn)pdf。也有使用documents4j進(jìn)行轉(zhuǎn)換,但是documents4j是依賴offic組件的,只適配Win

    2024年02月12日
    瀏覽(23)
  • 【Java】itext 實現(xiàn) html根據(jù)模板生成pdf 中文不顯示/圖片不顯示問題解決

    【Java】itext 實現(xiàn) html根據(jù)模板生成pdf 中文不顯示/圖片不顯示問題解決

    工作中需要使用生成pdf記錄,選取使用的是itext 生成 pdf方式。分享下實現(xiàn)方式及遇到的問題。 這里隨便找個html課程表作為示例,添加了幾張圖片為了展示圖片轉(zhuǎn)pdf功能。 一:引入jar包 二:導(dǎo)入ftl文件 這塊使用的是html語法,將文件后綴名改為ftl即可,在需要參數(shù)的地方通過

    2024年02月05日
    瀏覽(24)
  • Java Word轉(zhuǎn)PDF(直接轉(zhuǎn)和以圖片形式轉(zhuǎn))、PDF轉(zhuǎn)圖片、圖片轉(zhuǎn)PDF

    在淘寶上找了一家寫代碼的店鋪寫了一個工具類,再參考網(wǎng)上的代碼,改了改 用到的類庫: 工具類代碼:

    2024年02月12日
    瀏覽(28)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包