0

Web ページを作成しましたが、ユーザーがページのコンテンツをエクスポートできるようにしたいと考えています。そのために、Apache-POI ライブラリを使用しました。それはテキストに対してはうまくいきます。しかし、どうすれば MIME コンテンツをエクスポートできますか? リッチテキスト プロパティを [コンテンツを html/mime として保存] に変更した場合 (Notes でコンテンツをフォーマットしたいのですが、コンテンツに画像が含まれている場合があるため)。それが不可能な場合、xpage で使用可能な代替手段は何ですか?

以下のコードは xAgent として実行されます。

ありがとうアルミン

importPackage(java.io);
importPackage(org.apache.poi.hwpf);
importPackage(org.apache.poi.hwpf.usermodel);
importPackage(org.apache.poi.poifs.filesystem);

var docID = sessionScope.contentUNID;
var nv:NotesView = database.getView("(allByKey)");
var doc:NotesDocument = nv.getDocumentByKey(docID, true);

var fs:POIFSFileSystem = new POIFSFileSystem(new FileInputStream("empty.doc"));
var wdoc:HWPFDocument = new HWPFDocument(fs);
var wdRange:Range = wdoc.getRange();

wdRange.insertBefore(doc.getItemValueString("title"));
wdRange.insertAfter(doc.getMIMEEntity("content")); !!!doesn'twork

var extCont = facesContext.getExternalContext(); 
var pageResponse = extCont.getResponse();
var pageOutput = pageResponse.getOutputStream();

pageResponse.setContentType("application/vnd.ms-word");
pageResponse.setHeader("Cache-Control", "no-cache");
pageResponse.setHeader("Content-Disposition","inline; filename=export.doc");
wdoc.write(pageOutput);
pageOutput.flush();
pageOutput.close();

facesContext.responseComplete();
4

1 に答える 1

1

MIMEEntityコンテンツを取得するには、クラスのメソッドを使用する必要があります。たとえばdoc.getMIMEEntity("content").getContentAsText()。これを機能させるには、おそらくsession.setConvertMIME(false)ドキュメントを取得する前に設定する必要があります。

もう 1 つの方法は、そのまま取得し、クラスのメソッドを使用しRichTextItemてコンテンツを取得することです。この場合、 を設定しません。doc.getFirstItem("content")RichTextItemsession.setConvertMIME(false)

于 2013-01-16T11:14:48.353 に答える