首先,对不起,如果我的英语不是很好:s
我寻找一个生成jsp页面的word版本的解决方案。我测试了很多解决方案,但似乎都没有正常工作。给我更好结果的人是使用MIME for Word:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "">
<%@ page language="java" contentType="application/msword; charset=UTF-8" %>
但是此解决方案仅适用于IE并强制在Word中打开页面。但在其他浏览器(chrome或firefox)下,它会在.jsp
中下载我的页面代码另一个解决方案是使用POI,这是一个我没有成功设置的Java API。
提前致谢,
威廉
答案 0 :(得分:1)
由于您考虑使用POI,我建议您使用docx4j,请按此link进行设置。
用于导入docx4j库下载最新的docx4j.jar并添加项目构建路径或对maven项目使用以下依赖项
<dependency>
<groupId>org.docx4j</groupId>
<artifactId>docx4j</artifactId>
<version>3.2.0</version>
</dependency>
使用此代码将您的jsp转换为pdf
InputStream is = new FileInputStream(new File("your jsp file"));
WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.load(is);
PdfSettings pdfSettings = new PdfSettings();
OutputStream out = new FileOutputStream(new File("your pdf file"));
PdfConversion converter = new org.docx4j.convert.out.pdf.viaXSLFO.Conversion(wordMLPackage);
converter.output(out, pdfSettings);
希望这能解决你的问题。
答案 1 :(得分:0)
你混淆了.doc和 transfert 的代。 Naresh kumar建议的Apache POI或docx4j用于在服务器上生成.doc或.docx文件。 contentType="application/msword; charset=UTF-8"
用于转移:它只是向客户声明后面的内容应该是msword文档。
生成jsp页面的单词版本很难理解:jsp允许在文本文档中包含动态元素,通常是HTML页面,但它可以是简单的txt或XML。但是.doc或.docx是二进制格式,必须使用适当的工具直接通过servlet生成。
您还可以查看RTF格式。 (是?)是msword文档的文本表示。由于它是一种文本格式,因此可以使用JSP页面在RTF页面中包含动态元素,然后声明contentType="application/rtf; charset=UTF-8"
是有意义的。
根据wikipedia上的页面,RTF的最新版本于2008年由microsoft发布,因此您也可以尝试使用Open Document Format或Office Open XML。两种格式都允许通过XML生成文档,但要注意最终文档是包含其他xml文件的zip文件,因此它仍然是二进制格式。