Java 将 Excel 转换为 PDF 文件

这篇具有很好参考价值的文章主要介绍了Java 将 Excel 转换为 PDF 文件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Java 将 Excel 转换为 PDF 文件

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第11天,点击查看活动详情

今天这是篇粗糙的文章,文字也较少,整理了个Java将Excel 转换为 PDF 文件的工具类。(还比较粗糙粗糙~)

用的是 aspose 和pdfbox实现的。

aspose是没办法在公开的Maven仓库下载的。得去它官网下载,或者是去互联网上搜一搜~

获取 Aspose

官网地址:aspose

我是在网上冲浪拿到的~ ,有需求的私我就好~

其中里面的 license.xml 文件,是参考下面文章获得:

Java操作excel转pdf工具类 👈这篇文章中的代码是失败的,我帮你验证了...

 <License>
   <Data>
     <Products>
       <Product>Aspose.Total for Java</Product>
       <Product>Aspose.Words for Java</Product>
     </Products>
     <EditionType>Enterprise</EditionType>
     <SubscriptionExpiry>20991231</SubscriptionExpiry>
     <LicenseExpiry>20991231</LicenseExpiry>
     <SerialNumber>8bfe198c-7f0c-4ef8-8ff0-acc3237bf0d7</SerialNumber>
   </Data>
   <Signature>sNLLKGMUdF0r8O1kKilWAGdgfs2BvJb/2Xp8p5iuDVfZXmhppo+d0Ran1P9TKdjV4ABwAgKXxJ3jcQTqE/2IRfqwnPf8itN8aFZlV3TJPYeD3yWE7IT55Gz6EijUpC7aKeoohTb4w2fpox58wWoF3SNp6sK6jDfiAUGEHYJ9pjU=</Signature>
 </License>
复制代码

如果不加这个license,在PDF文件的顶部会出现水印~

工具类的实现

导入相关依赖:

 <dependencies>
     <dependency>
         <groupId>com.lowagie</groupId>
         <artifactId>itext</artifactId>
         <version>2.1.7</version>
     </dependency>
     <!-- https://mvnrepository.com/artifact/org.apache.pdfbox/pdfbox -->
     <dependency>
         <groupId>org.apache.pdfbox</groupId>
         <artifactId>pdfbox</artifactId>
         <version>2.0.24</version>
     </dependency>
     <dependency>
         <groupId>com.aspose</groupId>
         <artifactId>aspose-cells</artifactId>
         <version>8.6.2</version>
     </dependency>
 </dependencies>
复制代码

注意:此处的aspose-cells是由我手动放入我本地的Maven仓库后,再手动导入至项目中的。

Java 将 Excel 转换为 PDF 文件

不知道怎么手动导入Jar的小伙伴,互联网冲浪一下即可~

编写代码~

 package com.utils;
 ​
 import com.aspose.cells.License;
 import com.aspose.cells.PdfCompliance;
 import com.aspose.cells.PdfSaveOptions;
 import com.aspose.cells.Workbook;
 import org.apache.pdfbox.pdmodel.PDDocument;
 ​
 ​
 import java.io.*;
 import java.util.List;
 ​
 public class ExcelToPdf {
 ​
     private static License asposeLic;
 ​
     public static void main(String[] args) throws IOException {
         //convertPDFImage("d:\demo.xls", null);
         // 直接在相同目录输出pdf文件
         ExcelToPdf.convertPDF("E:\456.xlsx");
     }
 ​
     public static String convertPDF(String excelFileName) {
         return convertPDF(false, excelFileName);
     }
 ​
     /**
      * 是否每页大小自适应(超页不分页)
      *
      * @param onePagePerSheet excel每sheet页生成一页pad
      * @param excelFileName excel 文件
      * @return pdf
      */
     public static String convertPDF(boolean onePagePerSheet, String excelFileName) {
         String pdfFileName = "";
         PDDocument pdfDocument = null;
         try {
             Workbook workbook = new Workbook(excelFileName);
             getLicense();
             PdfSaveOptions saveOptions = new PdfSaveOptions();
             saveOptions.setCompliance(PdfCompliance.PDF_A_1_B);
             saveOptions.setOnePagePerSheet(onePagePerSheet);
             pdfFileName = excelFileName.substring(0, excelFileName.lastIndexOf(".")) + ".pdf";
             workbook.save(pdfFileName, saveOptions);
             pdfDocument = PDDocument.load(new File(pdfFileName));
             // Output file name
             pdfDocument.save(pdfFileName);
             editPDF(pdfFileName);
         } catch (Exception e) {
             e.printStackTrace();
         }finally  {
             if (pdfDocument != null) {
                 try {
                     pdfDocument.close();
                 } catch (Exception e) {
                     e.printStackTrace();
                 }
             }
         }
         return pdfFileName;
     }
 ​
     /**
      * 获取license
      *
      * @return
      */
     public static boolean getLicense() {
         boolean result = false;
         InputStream license = null;
         try {
             license = ExcelToPdf.class.getClassLoader().getResourceAsStream("\license.xml");
             asposeLic = new License();
             asposeLic.setLicense(license);
             result = true;
         } catch (Exception e) {
             e.printStackTrace();
         } finally {
             try {
                 if (license != null) {
                     license.close();
                 }
             } catch (IOException e) {
                 e.printStackTrace();
             }
         }
         return result;
     }
 ​
     public static boolean delete(String strFileName) {
         File fileDelete = new File(strFileName);
 ​
         if (!fileDelete.exists() || !fileDelete.isFile()) {
             System.out.println("错误: " + strFileName + "不存在!");
             return false;
         }
 ​
         return fileDelete.delete();
     }
 ​
 }
复制代码

测试结果:

测试控制台是没有输出的,只要正常结束就表示成功了。

Java 将 Excel 转换为 PDF 文件

Java 将 Excel 转换为 PDF 文件

Java 将 Excel 转换为 PDF 文件

后续的扩展还没有想好~,还可以使excel转成图片,也可以输出到浏览器。

今天只是个开端~

后记

今天就写到了这里啦~ 感觉自己还好菜啊~ 一起努力哦~

希望你是满载而归的~文章来源地址https://www.toymoban.com/news/detail-483265.html

到了这里,关于Java 将 Excel 转换为 PDF 文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 在java中如何使用openOffice进行格式转换,word,excel,ppt,pdf互相转换

    1.首先需要下载并安装openOffice,下载地址为: Apache OpenOffice download | SourceForge.net 2.安装后,可以测试下是否可用; 3.build.gradle中引入依赖: 4.创建工具类,启动openOffice服务的方法 5.结束openOffice服务的方法 7.在测试方法中进行格式转换,如,他可以是任意类型转换,如excel转换

    2024年02月14日
    浏览(56)
  • java使用openOffice将excel转换pdf时,将所有列显示在一页

    1.接上文,格式转换的基础问题已解决,但还有些细节问题需要单独处理,如excel转换至pdf时,如何将所有列显示在一页的问题,此问题大家都有遇到,解决方案也比较多,我也尝试过重写某类,来实现自定义pdf页面篇幅大小问题,但现在有个更优的方案给到大家,利用逆向思

    2024年02月14日
    浏览(36)
  • [免费在线] 将 PDF 转换为 Excel 或 Excel 转换为 PDF | 5 工具

    有了免费的在线 PDF 转换器,您可以轻松免费在线将 PDF 转换为 Excel 或 Excel 转换为 PDF。这篇文章为您筛选了 5 个最常用的工具。要从存储介质恢复错误删除或丢失的 PDF 文档、Excel 电子表格、Word 文件或任何其他文件,您可以使用免费的数据恢复程序 – 奇客数据恢复 您可以

    2024年02月13日
    浏览(43)
  • Java使用ftl模板文件生成Word,以及Word转换图片或Pdf工具类

    一、写在前面 最近在项目中使用打印功能,发现这个功能我已经写过多次了,下面这个文章的发步日期在2020年,不得不感慨时间之快啊。 https://blog.csdn.net/weixin_43238452/article/details/109636200?spm=1001.2014.3001.5501 下面介绍一下应用场景:这次项目依旧是springboot项目,使用ftl模版生

    2024年02月15日
    浏览(59)
  • 【Python】Python 批量转换PDF到Excel

    PDF是面向展示和打印使用的,并未考虑编辑使用,所以缺少了很多编辑属性且非常难修改PDF里面的数据。当您需要分析或修改PDF文档数据时,可以将PDF保存为Excel工作簿,实现轻松编辑数据的需求。PDF转Excel,技术关键就是提取原文档内的表格数据,保证转换前后数据的一致性

    2024年02月04日
    浏览(56)
  • POI实现导出复杂Excel(动态行,复杂单元格,水印,Excel转换为PDF)。

      一、POI 表格框架 1.POI : POI提供API给Java程序对Microsoft Office格式档案读和写的功能 2.HSSF:Horrible SpreadSheet Format,为读取操作提供了两类API:usermodel和eventusermodel,即“用户模型”和“事件-用户模型” 3.POI 文档结构类  HSSFWorkbook 文档对象,HSSFSheet  页,HSSFRow 行,HSSFCell 单

    2024年02月06日
    浏览(42)
  • C#实现将excel转换成pdf的三种方法

    本人经过一上午的搜索,总结了C#将excel转pdf的三种方法(导出的excel转化成pdf下载下来)。 设计文章数量较多,没有转载请见谅。 下载地址https://www.e-iceblue.cn/Downloads/Free-Spire-XLS-NET.html 附带MemoryStream与FileStream的相互转换 以上三种方法经过试验是可以使用的。 据说还有用py

    2024年02月04日
    浏览(44)
  • 如何在不使用任何软件的情况下将 PDF 转换为 Excel

    通常,您可能会遇到这样的情况:您需要的数据不在 Excel 工作表中,而是以数据表形式出现在 PDF 文件中。为了将此数据放入 Excel 工作表中,如果您尝试将数字复制并粘贴到电子表格中,则列/行将无法正确复制和对齐。因此,如果您想使用该表进行任何类型的分析,则无需

    2024年02月11日
    浏览(43)
  • 将PDF发票转换为excel、xml结构化数据的完美解决方案

    随着电子发票的普及,越来越多的企业和个人开始使用PDF格式的电子发票。然而,有时我们需要将电子发票转换为XML格式以便于处理和分析。本文将介绍如何将收到的PDF发票下载为excel、xml文件。 首先,我们需要明确一点,PDF是一种基于图像的格式,而excel、xml是一种基于文

    2024年01月17日
    浏览(45)
  • 电脑pdf如何转换成word格式?用它实现pdf文件一键转换

    pdf转word格式可以用于提取和重用pdf文档中的内容,有时候,我们可能需要引用或引用pdf文档中的一些段落、表格或数据,通过将pdf转换为可编辑的Word文档,可以轻松地复制和粘贴所需内容,节省我们的时间,那么如何进行pdf转word呢?市面上许多的pdf转换器对于大多数人来说

    2024年01月21日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包