私はstruts1でプロジェクトを行っています。小さな問題があります。
HTMLレポートがあります。これをMSWordドキュメントにエクスポートして印刷する必要があります。どうすればよいですか?
Apache POIを使用して、レポートをMicrosoftWordで出力することを検討できます。このリンクを参照して、ApachePOIを使用してどのように行われるかを確認することもできます。基本的な考え方は、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ページをユーザーに提供するだけです。