我正在struts1中做一个项目。有一个小问题。
我有一个 HTML 报告,我需要将它导出到 MS Word 文档并打印出来。我该怎么做呢?
您可以考虑使用Apache POI以 Microsoft Word 格式输出您的报告。您也可以参考这个链接来了解它是如何使用 Apache POI 完成的。一个基本的想法是,在您扩展 Action 的类中,使用 HttpServletResponse 输出文件。例如:
String filename = "words.doc";
p_response.setContentType("application/msword");
p_response.setHeader("Content-disposition",
"Attachment; filename=" + filename);
祝你好运!
将报告写成简单明了的 HTML。然后,对浏览器撒谎:
response.setHeader("Content-Disposition", "attachment; filename=\""
+ reportName + ".doc\"");
response.setContentType("application/msword");
report.writeTo(response.getOutputStream()); // Actually writes HTML, not doc.
浏览器将假定它是一个 Word 文档并询问用户他们想如何打开它(即使用 MS Word 或 OpenOffice)。MS Word 和 OpenOffice 都足够聪明,不会被 .doc 文件的 HTML 内容所迷惑,并且会打开它供用户编辑。
如果必须只打印报告,我建议改为导出 PDF,可能使用 JasperReports,或者只为用户提供一个纯 HTML 页面进行打印。