一、Aspose是什么?
Aspose.Words是一个商业.NET类库,可以使得应用程序处理大量的文件任务。Aspose.Words支持Doc,Docx,RTF,HTML,OpenDocument,PDF,XPS,EPUB和其他格式。使用Aspose.Words可以在不使用Microsoft.Word的情况下生成、修改、转换和打印文档。在项目中使用
Aspose.Words可以运行在Windows,Linux和Mac OS操作系统上面
虽然aspose的jar包是收费的,但是网上能搜到很多破解版的,去掉了页眉和水印 之类的限制
在项目中的使用就是将html标签转换为了docx文档,然后在写到输出流从浏览器中下载
部分代码:
String fileName =new String(getFileName(docId).getBytes("GB2312"), "ISO_8859_1") +".docx";
Document document = null;
String filePath = this.getClass().getResource("/").getPath()+"/"+getFileName(docId)+".docx";
XWPFDocument docx = null;
try {
if (!getLicense()) {
return;
}
document = new Document();
DocumentBuilder build = new DocumentBuilder(document);
build.insertHtml(html);
document.save(filePath);
docx = new XWPFDocument(new FileInputStream(filePath));
} catch (Exception e) {
e.printStackTrace();
}
outputStream = response.getOutputStream();
response.reset();
response.setHeader("Content-disposition", "attachment; filename="+fileName);
response.setContentType("application/msword");
response.setCharacterEncoding("GB2312");
docx.write(outputStream);
-----------------------------------------------------------------------------
public static boolean getLicense() {
boolean result = false;
try {
InputStream is = HtmlImageToBase64.class.getClassLoader().getResourceAsStream("license.xml");
License aposeLic = new License();
aposeLic.setLicense(is);
result = true;
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
其中license.xml是放在src目录下的
来源:CSDN
作者:咖啡色的笑
链接:https://blog.csdn.net/qq_41955582/article/details/103876653