简介:本文将介绍如何使用Aspose技能将Excel文件转换为PDF格式。我们将使用Aspose-Cells-8.5.2.jar包,并演示Java代码以及举行测试。
一、Aspose技能概述
Aspose是一款强盛的文档处理惩罚库,支持多种编程语言,如Java、C#、Python等。它提供了丰富的功能,可以轻松地实现各种文档格式之间的转换,包罗Word、Excel、PowerPoint、PDF等。在本文中,我们将重点关注如何使用Aspose技能将Excel以及Word文件转换为PDF格式。
二、准备环境
2.1 Excel
要使用Aspose技能,起首需要下载并安装Aspose-Cells-8.5.2.jar包。您可以从Aspose官方网站免费下载这个库。也可以听过下面的maven坐标引入对应的依赖信息。
- <dependency>
- <groupId>com.aspose</groupId>
- <artifactId>aspose-cells</artifactId>
- <version>8.5.2</version>
- </dependency>
复制代码 2.2 Word
要使用Aspose技能,起首需要下载并安装Aspose-words-15.8.0.jar包。您可以从Aspose官方网站免费下载这个库。也可以听过下面的maven坐标引入对应的依赖信息。
- <dependency>
- <groupId>com.aspose</groupId>
- <artifactId>aspose-words</artifactId>
- <version>15.8.0</version>
- </dependency>
复制代码 三、代码示例
3.1 excel-license.xml
注意:使用前,然后把excel-license.xml放在resources目次下,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>
复制代码 3.2 word-license.xml
注意:使用前,然后把excel-license.xml放在resources目次下,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>
复制代码 接下来,我们将编写一个简朴的Java程序,用于将Excel文件转换为PDF文件。以下是完备的Java代码示例:
3.2 PdfUtil工具类
- public class Excel2PdfUtil {
- /**
- * excel 转 pdf
- *
- * @param excelFilePath excel文件路径
- */
- public static void excel2pdf(String excelFilePath) {
- excel2pdf(excelFilePath, null, null);
- }
- /**
- * excel 转 pdf
- *
- * @param excelFilePath excel文件路径
- * @param convertSheets 需要转换的sheet
- */
- public static void excel2pdf(String excelFilePath, int[] convertSheets) {
- excel2pdf(excelFilePath, null, convertSheets);
- }
- /**
- * excel 转 pdf
- *
- * @param excelFilePath excel文件路径
- * @param pdfFilePath pdf文件路径
- */
- public static void excel2pdf(String excelFilePath, String pdfFilePath) {
- excel2pdf(excelFilePath, pdfFilePath, null);
- }
- /**
- * excel 转 pdf
- *
- * @param excelFilePath excel文件路径
- * @param pdfFilePath pdf文件路径
- * @param convertSheets 需要转换的sheet
- */
- public static void excel2pdf(String excelFilePath, String pdfFilePath, int[] convertSheets) {
- try {
- pdfFilePath = pdfFilePath == null ? getPdfFilePath(excelFilePath) : pdfFilePath;
- // 验证 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 文件路径,默认与源文件同一目录
- *
- * @param excelFilePath excel文件
- * @return 生成的 pdf 文件
- */
- private static String getPdfFilePath(String excelFilePath) {
- return excelFilePath.split(".")[0] + ".pdf";
- }
- /**
- * 获取 license 去除水印
- * 若不验证则转化出的pdf文档会有水印产生
- */
- 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页。
- *
- * @param sheets 显示页的sheet数组
- */
- 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);
- }
- }
- }
- }
复制代码 3.3 Excel测试
在我们的resources文件夹下新建一个test文件夹,文件夹放入咱的excel文件
- public class TestExcel2Pdf {
- public static void main(String[] args) {
- String srcFilePath = "/test/excel数据.xlsx";
- Excel2PdfUtil.excel2pdf(srcFilePath);
- }
- }
复制代码 测试效果:
转换成对应的PDF,几乎一模一样,如下图所示:
3.4 下面贴上Word的代码
工具类:
- @Slf4j
- public class Doc2PdfUtil {
- /**
- * 获取 license 去除水印
- * 若不验证则转化出的pdf文档会有水印产生
- */
- private static void getLicense() {
- String licenseFilePath = "word-license.xml";
- try {
- InputStream is = DocUtil.class.getClassLoader().getResourceAsStream(licenseFilePath);
- License license = new License();
- license.setLicense(Objects.requireNonNull(is));
- } catch (Exception e) {
- log.error("license verify failed");
- e.printStackTrace();
- }
- }
- /**
- * word 转 pdf
- * @param wordFile word 文件路径
- * @param pdfFile 生成的 pdf 文件路径
- */
- public static void word2Pdf(String wordFile, String pdfFile) {
- File file = new File(pdfFile);
- if (!file.getParentFile().exists()) {
- file.getParentFile().mkdir();
- }
- getLicense();
- try (FileOutputStream os = new FileOutputStream(new File(pdfFile))) {
- Document doc = new Document(wordFile);
- doc.save(os, SaveFormat.PDF);
- } catch (Exception e) {
- log.error("word转pdf失败", e);
- e.printStackTrace();
- }
- }
- }
复制代码 测试类:
- public class TestWord2Pdf {
- public static void main(String[] args) {
- String docFilePath = "/test/word数据.doc";
- String pdfFilePath = "/test/转换pdf数据.pdf";
- Doc2PdfUtil.word2Pdf(docFilePath, pdfFilePath);
- }
- }
复制代码 四、总结
通过本文的介绍,您应该已经了解了如何使用Aspose技能将Excel、Word文件转换为PDF格式。本文只是讲解了使用Apose技能举行转换成PDF,其实该技能能够做的事情还有许多,可以轻松地实现各种文档格式之间的转换。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |