ToB企服应用市场:ToB评测及商务社交产业平台
标题:
使用Aspose技能将Excel/Word转换为PDF
[打印本页]
作者:
科技颠覆者
时间:
2024-6-19 22:14
标题:
使用Aspose技能将Excel/Word转换为PDF
简介:本文将介绍如何使用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企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4