0
我創建了一個網頁並希望允許用戶導出網頁的內容。爲此,我使用了Apache-POI庫。這適用於文本。但是我怎樣才能輸出MIME內容?如果我將富文本屬性更改爲「將內容存儲爲html/mime」(因爲我想在Notes中格式化內容,有時內容中包含圖像)。 如果這是不可能的xpage中可用的替代品是什麼?通過Apache-POI將Lotus Notes富文本MIME內容導出到Word/Excel中
下面的代碼將作爲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();
好吧,我意識到我需要MIMEEntity的方法。如果我使用getContentAsText,則會得到「這是一個MIME格式的多部分消息」。該代碼將作爲一個xAgent(xpage沒有渲染)執行,所以我無法設置會話屬性(至少我不知道這一點)。對不起,我錯過了xAgent的信息。 –
@ArminMandel是的,你可以(並且經常必須)在XPage未呈現時也使用會話。 –
@ArminMandel:你必須解析整個MIME消息,而不僅僅是第一個節點。 –