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

使用aspose相關(guān)包將excel轉(zhuǎn)成pdf 并導(dǎo)出

這篇具有很好參考價(jià)值的文章主要介紹了使用aspose相關(guān)包將excel轉(zhuǎn)成pdf 并導(dǎo)出。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

SpringBoot 項(xiàng)目 基于aspose相關(guān)jar包 將excel 轉(zhuǎn)換成pdf 導(dǎo)出

1、依賴的jar包 , jar獲取鏈接 aspose相關(guān)三方j(luò)ar ,下載解壓后,在項(xiàng)目路徑下建一個(gè)libs包,然后將下圖兩個(gè)jar 拷貝至剛新建的libs目錄中

使用aspose相關(guān)包將excel轉(zhuǎn)成pdf 并導(dǎo)出,excel,pdf文章來源地址http://www.zghlxwxcb.cn/news/detail-845140.html

2、pom.xml中加入maven引入

        <dependency>
            <groupId>com.aspose.cells</groupId>
            <artifactId>cells-8.5.2 </artifactId>
            <scope>system</scope>
            <systemPath>${project.basedir}/src/main/resources/libs/aspose-cells-8.5.2.jar</systemPath>
            <version>8.5.2</version>
        </dependency>
        <dependency>
            <groupId>com.aspose.words</groupId>
            <artifactId>words-15.8.0 </artifactId>
            <scope>system</scope>
            <systemPath>${project.basedir}/src/main/resources/libs/aspose-words-15.8.0.jar</systemPath>
            <version>15.8.0</version>
        </dependency>
2.1 使用SpringBoot打包插件生成jar包的時(shí)候,你會(huì)發(fā)現(xiàn)這個(gè)jar包不會(huì)被打進(jìn)去,進(jìn)而出現(xiàn)錯(cuò)誤。解決這個(gè)問題就需要在maven打包插件中配置一個(gè)includeSystemScope屬性
<build>
        <finalName>${project.artifactId}</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <!--設(shè)置為true,以便把本地的system的jar也包括進(jìn)來-->
                    <includeSystemScope>true</includeSystemScope>
                </configuration>
            </plugin>
        </plugins>
    </build>

3、編寫轉(zhuǎn)換工具類 如下

package com.by.excelToPdf;

import com.aspose.cells.License;
import com.aspose.cells.PdfSaveOptions;
import com.aspose.cells.Workbook;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.FileOutputStream;
import java.io.InputStream;

public class PdfUtil {

    /**
     * excel 轉(zhuǎn) pdf
     * @param is 輸入流
     * @return 輸出流
     */
    public static ByteArrayOutputStream excel2pdf(ByteArrayInputStream is) {
        ByteArrayOutputStream bos = null;
        try {
            bos = new ByteArrayOutputStream();
            // 驗(yàn)證 License
            getLicense();
            Workbook wb = new Workbook(is);
            PdfSaveOptions pdfSaveOptions = new PdfSaveOptions();
            pdfSaveOptions.setOnePagePerSheet(true);
            wb.save(bos, pdfSaveOptions);
            bos.flush();
            bos.close();
        } catch (Exception e) {
            System.out.println("convert failed");
            e.printStackTrace();
        }
        return bos;
    }

    /**
     * excel 轉(zhuǎn) pdf
     *
     * @param excelFilePath excel文件路徑
     */
    public static void excel2pdf(String excelFilePath) {
        excel2pdf(excelFilePath, null, null);
    }

    /**
     * excel 轉(zhuǎn) pdf
     *
     * @param excelFilePath excel文件路徑
     * @param convertSheets 需要轉(zhuǎn)換的sheet
     */
    public static void excel2pdf(String excelFilePath, int[] convertSheets) {
        excel2pdf(excelFilePath, null, convertSheets);
    }

    /**
     * excel 轉(zhuǎn) pdf
     *
     * @param excelFilePath excel文件路徑
     * @param pdfFilePath   pdf文件路徑
     */
    public static void excel2pdf(String excelFilePath, String pdfFilePath) {
        excel2pdf(excelFilePath, pdfFilePath, null);
    }

    /**
     * excel 轉(zhuǎn) pdf
     *
     * @param excelFilePath excel文件路徑
     * @param pdfFilePath   pdf文件路徑
     * @param convertSheets 需要轉(zhuǎn)換的sheet
     */
    public static void excel2pdf(String excelFilePath, String pdfFilePath, int[] convertSheets) {
        try {
            pdfFilePath = pdfFilePath == null ? getPdfFilePath(excelFilePath) : pdfFilePath;
            // 驗(yàn)證 License
            getLicense();
            Workbook wb = new Workbook(excelFilePath);
            FileOutputStream fileOS = new FileOutputStream(pdfFilePath);
            PdfSaveOptions pdfSaveOptions = new PdfSaveOptions();
            pdfSaveOptions.setOnePagePerSheet(true);
            if (null != convertSheets) {
                printSheetPage(wb, convertSheets);
            }
            wb.save(fileOS, pdfSaveOptions);
            fileOS.flush();
            fileOS.close();
            System.out.println("convert success");
        } catch (Exception e) {
            System.out.println("convert failed");
            e.printStackTrace();
        }
    }

    /**
     * 獲取 生成的 pdf 文件路徑,默認(rèn)與源文件同一目錄
     *
     * @param excelFilePath excel文件
     * @return 生成的 pdf 文件
     */
    private static String getPdfFilePath(String excelFilePath) {
        return excelFilePath.split("\\.")[0] + ".pdf";
    }

    /**
     * 獲取 license 去除水印
     * 若不驗(yàn)證則轉(zhuǎn)化出的pdf文檔會(huì)有水印產(chǎn)生
     */
    private static void getLicense() {
        String licenseFilePath = "excel-license.xml";
        try {
            InputStream is = PdfUtil.class.getClassLoader().getResourceAsStream(licenseFilePath);
            License license = new License();
            license.setLicense(is);
        } catch (Exception e) {
            System.out.println("license verify failed");
            e.printStackTrace();
        }
    }

    /**
     * 隱藏workbook中不需要的sheet頁(yè)。
     *
     * @param sheets 顯示頁(yè)的sheet數(shù)組
     */
    private static void printSheetPage(Workbook wb, int[] sheets) {
        for (int i = 1; i < wb.getWorksheets().getCount(); i++) {
            wb.getWorksheets().get(i).setVisible(false);
        }
        if (null == sheets || sheets.length == 0) {
            wb.getWorksheets().get(0).setVisible(true);
        } else {
            for (int i = 0; i < sheets.length; i++) {
                wb.getWorksheets().get(i).setVisible(true);
            }
        }
    }
}

4、調(diào)用 工具類中有基于流的方式入?yún)?、文件地址方式入?yún)⒌?,大家可根?jù)自行需要選擇合適的轉(zhuǎn)換方法

    public static void main(String[] args) {
        String inputFile = "D:/testPdf/222.xlsx";
        String outputFile = "D:/testPdf/222.pdf";
        PdfUtil.excel2pdf(inputFile, outputFile);
    }

5、注意問題,以上轉(zhuǎn)換在windows環(huán)境運(yùn)行一切正常,可能部署到linux環(huán)境會(huì)存在中文亂碼,引起亂碼的原因可能是因?yàn)閘inux環(huán)境無中文相關(guān)字體

  • linux環(huán)境查看字段方法 字體路徑/usr/share/fonts
# 刷新字體緩存
fc-cache
# 查看所有字體
fc-list
# 查看所有中文字體
fc-list :lang=zh
  • 如果無中文字體 我們可能把windows環(huán)境中的字段上傳至linux字段目錄下,windows環(huán)境字段路徑C:\Windows\Fonts,上傳后安裝字段
yum -y install mkfontscale mkfontdir fontconfig
# mkfontscale:字體擴(kuò)展、mkfontdir:新增字體目錄、fc-cache:刷新緩存
mkfontscale && mkfontdir && fc-cache 
  • 如果使用docker 容器啟動(dòng)的應(yīng)用服務(wù),則還需要使用掛載卷的方式,將宿主體的字體和容器共享,具體方式即啟動(dòng)容器時(shí) 加上 “-v /usr/share/fonts/:/usr/share/fonts”

到了這里,關(guān)于使用aspose相關(guān)包將excel轉(zhuǎn)成pdf 并導(dǎo)出的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 【工具插件類教學(xué)】Unity通過Aspose讀取并顯示打開PDF,PPT,Excel,Word

    目錄 一、獲取Aspose支持.Net的DLL 二、導(dǎo)入U(xiǎn)nity的Plugin文件夾 三、分別編寫四種文件的讀取顯示

    2024年02月02日
    瀏覽(98)
  • js將Excel轉(zhuǎn)成PDF(紙張、分頁(yè)、鋪滿、提高清晰度)

    依賴: 示例html DOM: 核心js: - - -

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

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

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

    2024年02月03日
    瀏覽(96)
  • Aspose.cell excel轉(zhuǎn)pdf日期格式不正確yyyy/MM/dd變成MM/dd/yyyy

    Aspose.cell excel轉(zhuǎn)pdf日期格式不正確yyyy/MM/dd變成MM/dd/yyyy

    最近使用Aspose.cell將excel轉(zhuǎn)pdf過程中excel中時(shí)間格式列的顯示和excel表里的值顯示不一樣。 excel里日期格式 yyyy/MM/dd pdf里日期格式MM/dd/yyyy 主要原因:linux和windows里內(nèi)置的時(shí)間格式不一致,當(dāng)代碼部署到linux服務(wù)器的時(shí)候轉(zhuǎn)換格式就會(huì)發(fā)生不一致的問題。 解決方法:使用apache p

    2024年02月15日
    瀏覽(23)
  • 文檔在線預(yù)覽(四)將word、txt、ppt、excel、圖片轉(zhuǎn)成pdf來實(shí)現(xiàn)在線預(yù)覽

    文檔在線預(yù)覽(四)將word、txt、ppt、excel、圖片轉(zhuǎn)成pdf來實(shí)現(xiàn)在線預(yù)覽

    @ 目錄 事前準(zhǔn)備 1、需要的maven依賴 添加spire依賴(商用,有免費(fèi)版,但是存在頁(yè)數(shù)和字?jǐn)?shù)限制,不采用spire方式可不添加) 2、后面用到的工具類代碼: 一、word文件轉(zhuǎn)pdf文件(支持doc、docx) 1、使用aspose方式 2、使用poi方式 3、使用spire方式 二、txt文件轉(zhuǎn)pdf文件 三、PPT文件轉(zhuǎn)

    2024年02月08日
    瀏覽(109)
  • Java【代碼 16】將word、excel文件轉(zhuǎn)換為pdf格式和將pdf文檔轉(zhuǎn)換為image格式工具類分享(Gitee源碼)aspose轉(zhuǎn)換中文亂碼問題處理

    感謝小伙伴兒的分享: ● 不羈 ● 郭中天 整合調(diào)整后的工具類Gitee地址:https://gitee.com/yuanzhengme/java_application_aspose_demo ● WordToPdfUtil用于將word文檔轉(zhuǎn)換為pdf格式的工具類 ● ExcelToPdfUtil用于將excel文檔轉(zhuǎn)換為pdf格式的工具類 ● PdfToImageUtil用于將pdf文檔轉(zhuǎn)換為image格式的工具類

    2024年01月24日
    瀏覽(34)
  • Aspose導(dǎo)出word使用記錄

    Aspose導(dǎo)出word使用記錄

    背景 :Aspose系列的控件,功能實(shí)現(xiàn)都比較強(qiáng)大,可以實(shí)現(xiàn)多樣化的報(bào)表設(shè)計(jì)及輸出。 通過這次業(yè)務(wù)機(jī)會(huì),鋰寶碳審核中業(yè)務(wù)功需要實(shí)現(xiàn)Word文檔表格的動(dòng)態(tài)導(dǎo)出功能,因此學(xué)習(xí)了相關(guān)內(nèi)容,在學(xué)習(xí)和參考了官方API文檔的幫助下,將學(xué)習(xí)和簡(jiǎn)單的使用記錄在wiki中。下面由我來簡(jiǎn)

    2024年02月10日
    瀏覽(16)
  • Aspose.Pdf使用教程:在PDF文件中添加水印

    Aspose.PDF ?是一款高級(jí)PDF處理API,可以在跨平臺(tái)應(yīng)用程序中輕松生成,修改,轉(zhuǎn)換,呈現(xiàn),保護(hù)和打印文檔。無需使用Adobe Acrobat。此外,API提供壓縮選項(xiàng),表創(chuàng)建和處理,圖形和圖像功能,廣泛的超鏈接功能,圖章和水印任務(wù),擴(kuò)展的安全控件和自定義字體處理。本文將為你

    2024年02月01日
    瀏覽(22)
  • 用Aspose-Java免費(fèi)實(shí)現(xiàn) PDF、Word、Excel、Word互相轉(zhuǎn)換并將轉(zhuǎn)換過得文件上傳OSS,返回轉(zhuǎn)換后的文件路徑

    用Aspose-Java免費(fèi)實(shí)現(xiàn) PDF、Word、Excel、Word互相轉(zhuǎn)換并將轉(zhuǎn)換過得文件上傳OSS,返回轉(zhuǎn)換后的文件路徑

    github代碼地址 https://github.com/Tom-shushu/work-study 接口文檔有道云 https://note.youdao.com/s/GShGsYE8 接口文檔離線版本 https://files.cnblogs.com/files/Tom-shushu/%E6%8E%A5%E5%8F%A3%E6%96%87%E6%A1%A3.rar?t=1682958343download=true 為什么發(fā)布這篇文檔轉(zhuǎn)換的文章呢?因?yàn)樯现芪乙獙⒁粋€(gè)PDF轉(zhuǎn)換為Word,結(jié)果百度谷歌

    2024年02月02日
    瀏覽(55)
  • Java + React導(dǎo)出Excel/PDF

    Java + React導(dǎo)出Excel/PDF

    前言 在B/S架構(gòu)中,服務(wù)端導(dǎo)出是一種高效的方式。它將導(dǎo)出的邏輯放在服務(wù)端,前端僅需發(fā)起請(qǐng)求即可。通過在服務(wù)端完成導(dǎo)出后,前端再下載文件完成整個(gè)導(dǎo)出過程。服務(wù)端導(dǎo)出具有許多優(yōu)點(diǎn),如數(shù)據(jù)安全、適用于大規(guī)模數(shù)據(jù)場(chǎng)景以及不受前端性能影響等。 本文將使用前

    2024年02月10日
    瀏覽(22)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包