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

Java Word轉(zhuǎn)PDF(直接轉(zhuǎn)和以圖片形式轉(zhuǎn))、PDF轉(zhuǎn)圖片、圖片轉(zhuǎn)PDF

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

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

        <!-- https://mvnrepository.com/artifact/org.apache.pdfbox/fontbox -->
        <!--word轉(zhuǎn)pdf-->
        <dependency>
            <groupId>com.documents4j</groupId>
            <artifactId>documents4j-local</artifactId>
            <version>1.1.12</version>
        </dependency>

        <dependency>
            <groupId>com.documents4j</groupId>
            <artifactId>documents4j-transformer-msoffice-word</artifactId>
            <version>1.1.12</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.apache.pdfbox/pdfbox -->
        <!-- pdf轉(zhuǎn)圖片和圖片轉(zhuǎn)pdf-->
        <dependency>
            <groupId>org.apache.pdfbox</groupId>
            <artifactId>pdfbox</artifactId>
            <version>2.0.29</version>
        </dependency>

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

import com.documents4j.api.DocumentType;
import com.documents4j.job.LocalConverter;
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 org.apache.pdfbox.rendering.PDFRenderer;

import javax.imageio.ImageIO;
import javax.imageio.ImageReader;
import javax.imageio.stream.ImageInputStream;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class FileConvertor {

    /**
     * 根據(jù)word每頁生成圖片,再根據(jù)得到的圖片,合并生成PDF
     */
    public static void wordToImagePDF(String wordPath,String imageDirectory, String targetPDF) throws IOException {
        //生成臨時pdf文件
        File tempFile = File.createTempFile("temp", ".pdf");
        String temporaryPDF = tempFile.getAbsolutePath();
        //將word轉(zhuǎn)換為pdf,并寫入臨時pdf
        wordToPDF(wordPath, temporaryPDF);
        //將臨時pdf轉(zhuǎn)換為圖片
        List<String> images = pdfToImages(temporaryPDF,imageDirectory,300,"png");
        //將轉(zhuǎn)換出來的圖片合并為pdf
        try (PDDocument pdDocument = new PDDocument()) {
            for (String imagePath : images) {
                imageToPDF(imagePath, pdDocument);
            }
            pdDocument.save(targetPDF);
        }
        //刪除臨時pdf
        Files.delete(Paths.get(temporaryPDF));
    }

    /**
     * Word文檔轉(zhuǎn)換為PDF文檔
     * @param wordPath Word文檔路徑
     * @param pdfPath  生成的PDF路徑
     */
    public static void wordToPDF(String wordPath, String pdfPath) throws IOException {
        File inputWord = new File(wordPath);
        File outputFile = new File(pdfPath);
        InputStream docxInputStream = Files.newInputStream(inputWord.toPath());
        OutputStream outputStream = Files.newOutputStream(outputFile.toPath());
        LocalConverter.builder().build().convert(docxInputStream)
                .as(DocumentType.DOCX)
                .to(outputStream)
                .as(DocumentType.PDF).execute();
        outputStream.close();
        docxInputStream.close();
    }

    /**
     * PDF文件轉(zhuǎn)圖片(word一頁對應(yīng)一個圖像)
     * 圖片將保存文件夾下,根據(jù)頁數(shù)命名
     * @param pdfPath PDF文件路徑
     * @param imageDirectory 生成的圖片保存的文件夾
     * @param dpi 生成圖片dpi
     * @param formatName 生成圖片的格式
     */
    public static List<String> pdfToImages(String pdfPath,String imageDirectory,
                                           float dpi, String formatName) throws IOException {
        File file = new File(pdfPath);
        ArrayList<String> list = new ArrayList<>();
        try (PDDocument doc = PDDocument.load(file)) {
            PDFRenderer renderer = new PDFRenderer(doc);
            int pageCount = doc.getNumberOfPages();
            for (int i = 0; i < pageCount; i++) {
                BufferedImage image = renderer.renderImageWithDPI(i, dpi);
                int pageIndex = i + 1;
                String imagePath = imageDirectory +File.separator + pageIndex + "."+formatName;
                ImageIO.write(image, formatName, new File(imagePath));
                list.add(imagePath);
            }
        }
        return list;
    }


    /**
     * 圖片轉(zhuǎn)PDF
     */
    public static void imageToPDF(String imagePath, PDDocument document) throws IOException {
        //獲取圖片長寬
        File file = new File(imagePath);
        String fileSuffix = imagePath.substring(imagePath.lastIndexOf(".") + 1);
        Iterator<ImageReader> readers = ImageIO.getImageReadersByFormatName(fileSuffix);
        ImageReader reader = readers.next();
        ImageInputStream input = ImageIO.createImageInputStream(Files.newInputStream(file.toPath()));
        reader.setInput(input, true);
        int width = reader.getWidth(0);
        int height = reader.getHeight(0);
        //根據(jù)圖片大小動態(tài)生成pdf頁面
        PDPage pdPage = new PDPage(new PDRectangle(width, height));
        document.addPage(pdPage);
        PDImageXObject pdImageXObject = PDImageXObject.createFromFile(imagePath, document);
        PDPageContentStream contentStream = new PDPageContentStream(document, pdPage);
        //寫入圖片
        contentStream.drawImage(pdImageXObject, 0, 0);
        contentStream.close();
        input.close();
    }
}

到了這里,關(guān)于Java Word轉(zhuǎn)PDF(直接轉(zhuǎn)和以圖片形式轉(zhuǎn))、PDF轉(zhuǎn)圖片、圖片轉(zhuǎn)PDF的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • JAVA之利用easypoi將word模板導(dǎo)出為pdf(可帶圖片)

    JAVA之利用easypoi將word模板導(dǎo)出為pdf(可帶圖片)

    EasyPoi是一款基于POI的Java快速導(dǎo)出/導(dǎo)入Excel工具。它在POI的基礎(chǔ)上進(jìn)行了封裝,提供了更加簡潔易用的API,使得生成Excel文件更加容易和高效。 使用EasyPoi可以輕松地生成Excel文件,并支持多種格式,如xlsx、xls、csv等。同時,EasyPoi也支持讀取Excel文件,可以方便地獲取其中的數(shù)

    2024年02月08日
    瀏覽(29)
  • Java將獲取的參數(shù),圖片以及pdf文件放入到word文檔指定位置

    Java將獲取的參數(shù),圖片以及pdf文件放入到word文檔指定位置

    首先引入的依賴 接下面的是template.docx文檔,參數(shù)是以{{paramName}}格式的,為什么要以這種格式,是因?yàn)橄旅娴姆椒?在替換參數(shù)的時候需要 但是從數(shù)據(jù)庫獲取的參數(shù)跟模板中的參數(shù)一一對應(yīng)上即可,格式如下(我是json形式展示的): { ?? ?\\\"countQuota\\\": \\\"1\\\", ?? ?\\\"noEmission\\\": \\\"1\\\", ?

    2024年02月15日
    瀏覽(35)
  • aspose-words、itextpdf完美解決java將word、excel、ppt、圖片轉(zhuǎn)換為pdf文件

    aspose-words、itextpdf完美解決java將word、excel、ppt、圖片轉(zhuǎn)換為pdf文件

    我是 傲驕鹿先生 ,沉淀、學(xué)習(xí)、分享、成長。 如果你覺得文章內(nèi)容還可以的話,希望不吝您的「一鍵三連」,文章里面有不足的地方希望各位在評論區(qū)補(bǔ)充疑惑、見解以及面試中遇到的奇葩問法 面對日常開發(fā)過程中,將各種文件轉(zhuǎn)換為pdf文件的問題,總是讓人頭疼,這次終

    2024年02月03日
    瀏覽(96)
  • java word轉(zhuǎn)pdf,word模板

    java word轉(zhuǎn)pdf,word模板

    maven poi-tl語法參考文檔 http://deepoove.com/poi-tl/ 測試poi-tl 測試word轉(zhuǎn)pdf test.docx 截圖 template.docx截圖 效果截圖

    2024年02月06日
    瀏覽(15)
  • java超簡單實(shí)現(xiàn)文檔在線預(yù)覽功能,支持word\excel\text\pdf\圖片等格式轉(zhuǎn)pdf,aspost 轉(zhuǎn)pdf部署linux中文亂碼解決方案

    java超簡單實(shí)現(xiàn)文檔在線預(yù)覽功能,支持word\excel\text\pdf\圖片等格式轉(zhuǎn)pdf,aspost 轉(zhuǎn)pdf部署linux中文亂碼解決方案

    一、背景 ????????在工作中需要對上傳到服務(wù)器的各種類型包括但不限于word、pdf、excel等文件進(jìn)行在線預(yù)覽,前端比較菜搞不定,只能本人親自上。 ? ? ? ? 網(wǎng)上的經(jīng)驗(yàn)比較多也比較亂, 有的只有預(yù)覽,沒有文件格式轉(zhuǎn)換,有的也不說linux存在字體問題, 本文會直白的給

    2024年04月10日
    瀏覽(596)
  • Java實(shí)現(xiàn)Word文檔轉(zhuǎn)PDF,PDF轉(zhuǎn)Word,PDF轉(zhuǎn)Excel,PDF轉(zhuǎn)換工具

    java實(shí)現(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根據(jù)word模板生成word文檔并轉(zhuǎn)成PDF文件

    Java根據(jù)word模板生成word文檔并轉(zhuǎn)成PDF文件

    定義完我們的模板之后,我們要將文檔保存為xml的格式 生成的xml格式看起來比較亂,沒有層次感, 所以需要格式化一下 格式化 基礎(chǔ)信息的定義 基礎(chǔ)信息的定義只要保證我們轉(zhuǎn)化成的xml文件中的${name}等格式?jīng)]錯誤即可 表格的定義 遍歷實(shí)現(xiàn),表格的數(shù)據(jù)填充 在xml文件中我們的

    2024年02月09日
    瀏覽(35)
  • java實(shí)現(xiàn)pdf轉(zhuǎn)word

    1.java實(shí)現(xiàn)pdf轉(zhuǎn)word。 2.純免費(fèi)開源。 3.pdf解析完會生成word文件和圖片文件夾。 4.無頁碼限制,文本類型生成到word中,圖片生成到圖片文件夾中。 5.弊端:需手動將圖片與文本整合成一個word文件。 僅提供一個pdf轉(zhuǎn)word的實(shí)現(xiàn)方案,代碼粗糙,老鐵輕噴。 jar包地址:https://downlo

    2024年03月10日
    瀏覽(20)
  • Java將Word轉(zhuǎn)換成PDF

    Java將Word轉(zhuǎn)換成PDF

    最近項(xiàng)目需要做在線預(yù)覽文檔功能,要求對word文檔后臺轉(zhuǎn)為pdf,遇到了很多問題,因此記錄一下。 網(wǎng)上有很多將Word轉(zhuǎn)換成PDF的方式,這里我試了幾種比較簡單的方式:POI、aspose、spire和documents4j。 POI是Apache下的一個Java類庫,可以幫助我們實(shí)現(xiàn)Java與各種Office格式文件的互相轉(zhuǎn)

    2024年02月08日
    瀏覽(21)
  • Java開發(fā)中Word轉(zhuǎn)PDF

    https://blog.csdn.net/aley/article/details/127914145?ops_request_misc=request_id=biz_id=102utm_term=java%20%20word%20%E8%BD%ACpdfutm_medium=distribute.pc_search_result.none-task-blog-2 all sobaiduweb~default-2-127914145.nonecasespm=1018.2226.3001.4187 https://blog.csdn.net/weixin_38409915/article/details/125317664 網(wǎng)上有很多將Word轉(zhuǎn)換成PDF的方式,

    2024年02月11日
    瀏覽(20)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包