1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > Java使用aspse实现Excel文件转换成PDF文件

Java使用aspse实现Excel文件转换成PDF文件

时间:2021-08-29 23:47:15

相关推荐

Java使用aspse实现Excel文件转换成PDF文件

使用Java代码把Excel文件转换成PDF文件

需要引用aspose包,引入操作我写了一个博客,地址如下

/weixin_46713508/article/details/125495770?spm=1001..3001.5502

pom全部依赖

<?xml version="1.0" encoding="UTF-8"?><project xmlns="/POM/4.0.0"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/POM/4.0.0 /xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.test</groupId><artifactId>aspose-word-excel</artifactId><version>1.0-SNAPSHOT</version><dependencies><!--word文件转PDF以及水印--><dependency><groupId>e-iceblue</groupId><artifactId>spire.doc.free</artifactId><version>3.9.0</version></dependency><dependency><groupId>e-iceblue</groupId><artifactId>spire.pdf.free</artifactId><version>3.9.0</version></dependency><!--解析word时用到的包--><dependency><groupId>com.lowagie</groupId><artifactId>itext</artifactId><version>2.1.7</version></dependency><!--lombok--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.16</version><scope>compile</scope></dependency><!--Aspose相关依赖 需要在本地指定导入--><dependency><groupId>com.aspose.words</groupId><artifactId>aspose-words</artifactId><version>words-15.8.0-jdk16</version><scope>system</scope><systemPath>${project.basedir}/src/main/resources/lib/aspose-words-15.8.0-jdk16.jar</systemPath></dependency><dependency><groupId>com.aspose.cells</groupId><artifactId>aspose-cells</artifactId><version>cell-8.5.2</version><scope>system</scope><systemPath>${project.basedir}/src/main/resources/lib/aspose-cells-8.5.2.jar</systemPath></dependency><dependency><groupId>com.aspose.pdf</groupId><artifactId>aspose-pdf</artifactId><version>pdf-17.3.0</version><scope>system</scope><systemPath>${project.basedir}/src/main/resources/lib/aspose.pdf-17.3.0.jar</systemPath></dependency><!--文件上传--><!--骑缝章相关依赖--><dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.13</version></dependency><dependency><groupId>com.itextpdf</groupId><artifactId>itext-asian</artifactId><version>5.2.0</version></dependency><dependency><groupId>com.itextpdf.tool</groupId><artifactId>xmlworker</artifactId><version>5.5.13</version></dependency><dependency><groupId>fr.opensagres.xdocreport</groupId><artifactId>fr.opensagres.poi.xwpf.converter.pdf-gae</artifactId><version>2.0.1</version></dependency></dependencies><repositories><repository><id>com.e-iceblue</id><url>https://repo.e-/repository/maven-public/</url></repository></repositories></project>

resource下创建license.xml

<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** @return*/public static boolean getLicense() {boolean result = false;try {InputStream is = ConvertPDFUtils.class.getClassLoader().getResourceAsStream("\\license.xml");License aposeLic = new License();aposeLic.setLicense(is);result = true;} catch (Exception e) {e.printStackTrace();}return result;}

public static Boolean excelConvertToPdf(String excelfilePath, String pdfFilePath) {// 验证Licenseif (!getLicense()) {return false;}try {// 原始excel路径Workbook wb = new Workbook(excelfilePath);// 输出路径File pdfFile = new File(pdfFilePath);FileOutputStream fileOS = new FileOutputStream(pdfFile);wb.save(fileOS, SaveFormat.PDF);return true;} catch (Exception e) {e.printStackTrace();return false;}}

public static void main(String[] args) {String sourcePath = "D:\\File\\体重记录.xlsx";String targetPath = "D:\\File\\体重变化图表.pdf";// 验证Licenseif (!ConvertPDFUtils.getLicense()) {return;}long old = System.currentTimeMillis();if (ConvertPDFUtils.excelConvertToPdf(sourcePath, targetPath)) {long now = System.currentTimeMillis();System.out.println("Excel转Pdf成功,共耗时:" + ((now - old) / 1000.0) + "秒");}}

直接运行即可

下面是简单封装后的,应该以流输出,目前没时间处理

public boolean excelConvertPdf(MultipartFile file, String outPath) throws Exception {// 文件输出流FileOutputStream fileOS = null;// 验证Licenseif (!ConvertPDFUtils.getLicense()) {return false;}try {// 读取模板文件Workbook wb = new Workbook(file.getInputStream());// 输出路径File pdfFile = new File(outPath);fileOS = new FileOutputStream(pdfFile);wb.save(fileOS, SaveFormat.PDF);return true;} catch (Exception e) {e.printStackTrace();return false;}finally {fileOS.close();}}

调用如下

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。