把domino 的文件生成 doc 或者 html 檔案的實現
import lotus.domino.*;
import java.util.*;
import java.io.PrintWriter;
import com.gdcn.admin.*;
import com.gdcn.rmi.*;
import java.rmi.Naming;
import com.gdcn.domino.util.Log;
import java.io.*;
import com.gdcn.domino.*;
import com.gdcn.*;
import java.lang.*;
import org.jdom.Element;
public class JavaAgent extends AgentBase {
HashMap paramsMap;
private PrintWriter pw;
private PubliceFunction pFunc = new PubliceFunction();
private static DominoInt dominoInt = null;
private Session session = null;
private String tmpPath_forWord = null; //臨時目錄
private AgentContext agentContext;
private Database gz_dict_config = null;
private Vector youxiang= new Vector(); //律師郵箱
private Document tmpDoc=null;
public void NotesMain() {
try {
session = getSession();
agentContext = session.getAgentContext();
pw = getAgentOutput();
dominoInt = pFunc.getRmi(session);
Document doc = agentContext.getDocumentContext();
Database db = agentContext.getCurrentDatabase();
//取業務配置庫
String lstrPath = db.getFilePath().toString()
.substring(
0,
(db.getFilePath().length() - db
.getFileName().length()));
gz_dict_config= session.getDatabase(db.getServer(), lstrPath
+ "gz_dict_config.nsf");
View law=null;
Document ywDoc = null;
if(doc.getItemValueString("lxr")!=null && !doc.getItemValueString("lxr").equals("")){
law=gz_dict_config.getView("vw_ShowLSConfigformail");
ywDoc= law.getDocumentByKey(doc.getItemValueString("lxr"));
youxiang=ywDoc.getItemValue("youxiang");
}
for(int i=0;i
String tempRtfDir=getDbPathWithSepChar(db); //臨時文件路徑
String tmpAttName = "test1.doc";
tmpPath_forWord = session.getEnvironmentString("Directory", true);
if (platform.equals("UNIX") || platform.equals("LINUX")) {
tmpPath_forWord += "/domino/html/download/";
} else {
tmpPath_forWord += "";
}
String tempRtfFile = tmpPath_forWord+tmpAttName;
tmpDoc = db.createDocument();
Document RcfvTable =db.createDocument();
RcfvTable.replaceItemValue("form","RcfvTable");
RcfvTable.replaceItemValue("user",agentContext.getEffectiveUserName());
RcfvTable.replaceItemValue("zcdh",doc.getFirstItem("bhText").getText());
RcfvTable.replaceItemValue("fadanren",doc.getItemValueString("InitalAuthor_SYS_1"));
RcfvTable.replaceItemValue("jbtime_1", doc.getFirstItem("jbtime").getText());
RcfvTable.replaceItemValue("riqi",doc.getItemValueString("InitalCreated").substring(0,10));
RcfvTable.replaceItemValue("projectname_1", doc.getFirstItem("projectname").getText());
RcfvTable.replaceItemValue("name_1", doc.getFirstItem("name").getText());
RcfvTable.replaceItemValue("lxr_1", doc.getFirstItem("lxr").getText());
// RcfvTable.replaceItemValue("zcdnr_1", doc.getFirstItem("zcdnr").getText());
Vector xinxi=doc.getItemValue("zcdnr");
String neir="";
for(int k=0;k
";
}
RcfvTable.replaceItemValue("zcdnr_1", neir);
RcfvTable.replaceItemValue("yqfksj_1", doc.getFirstItem("yqfksj").getText()+" "+doc.getItemValueString("qjtime1"));
RcfvTable.replaceItemValue("hdnr_1", "");
RcfvTable.replaceItemValue("cljg", "");
RichTextItem tmpItem;
if(tmpDoc.hasItem("rtf_DocAtt")) tmpDoc.removeItem("rtf_DocAtt");
tmpItem=tmpDoc.createRichTextItem("rtf_DocAtt");
RcfvTable.renderToRTItem(tmpItem);
//文件正文內容
String tmp = tmpItem.getText();
FileOutputStream fOut=new FileOutputStream(tempRtfFile);
fOut.write(tmp.getBytes());
if(tmpDoc.hasItem("rtf_DocAtt")) tmpDoc.removeItem("rtf_DocAtt");
tmpItem=tmpDoc.createRichTextItem("rtf_DocAtt");
tmpItem.××Object(××dedObject.××_ATTACHMENT,"",tempRtfFile,"test1.doc");
File tmpFile = new File(tempRtfFile);
tmpFile.delete();
RcfvTable.remove(true);
String direct = session.getEnvironmentString("Directory", true);
String tmpPath = "";
if (platform.toLowerCase().indexOf("windows") > -1) {
tmpPath = direct + "";
} else {
tmpPath = direct + "/domino/html/temp/";
}
File fileTemp = new File(tmpPath);
if(!fileTemp.isDirectory()){
fileTemp.mkdir();
}
// for(int i=0;i
//設定當前登陸使用者為發件人
tmpDoc.replaceItemValue("Principal",doc.getItemValueString("currentUserNameCommon"));
//郵件標題
tmpDoc.replaceItemValue("Subject", "test1--"+doc.getItemValueString("bhText"));
//郵件內容
RichTextItem wbody = tmpDoc.createRichTextItem("wBody");
// wbody.appendText("");
MIMEEntity body = tmpDoc.createMIMEEntity();
Stream stream = session.createStream();
stream.writeText(wbody.getText());
body.setContentFromText(stream, "text/html;charset=UTF-8",MIMEEntity.ENC_NONE);
wbody.remove();
//========== 把附件加到郵件上 ======
//1、取附件名
String attformular = "@AttachmentNames";
Vector ret = session.evaluate(attformular,doc);
if(!ret.get(0).toString().equals("")){ //如果存在附件
//2、拆除附件
for (int j = 0; j < ret.size(); j++) {
String attName_down = ret.get(j).toString();
try {
××dedObject obj_down = doc.getAttachment(attName_down);
if (obj_down != null) {
obj_down.extractFile(tmpPath + attName_down);
obj_down.recycle();
obj_down = null;
}
} catch (Exception e) {
e.printStackTrace();
}
}
//3、上傳附件
RichTextItem attFile =tmpDoc.createRichTextItem("Body");
for (int k = 0; k < ret.size(); k++) {
String attName_up = ret.get(k).toString();
File upAttFile = new File(tmpPath + attName_up);
if (upAttFile.exists()) {
attFile.××Object(××dedObject.××_ATTACHMENT, null,
tmpPath + attName_up, attName_up);
try {
upAttFile.delete(); // 刪除臨時文件
} catch (Exception delErr) {
delErr.printStackTrace();
}
} else {
throw new RuntimeException("NotesMain()出錯:伺服器檔案["+tmpPath + attName_up+"]不存在");
}
}
attFile.recycle();
attFile = null;
}
tmpDoc.send(false,youxiang.get(i).toString());
}
// tmpDoc.send(false,youxiang);
doc.save(true,true);
pw.println("
ywDoc.recycle();
law.recycle();
} catch(Exception e) {
e.printStackTrace();
}finally{
if(dominoInt != null && (dominoInt instanceof com.gdcn.domino.pool.DominoIntProxy))
((com.gdcn.domino.pool.DominoIntProxy)dominoInt).release();
try {
session.recycle();
} catch (Exception e) {
e.printStackTrace();
}
}
}
/**
* 功能:取當前資料庫目錄(包括分隔符號),與平臺不相關
*/
public String getDbPathWithSepChar(Database db) throws Exception {
String path = "";
String dbPath = db.getFilePath();
String filename = db.getFileName();
path = dbPath.substring(0, dbPath.length() - filename.length());
return path;
}
}
有時生成的doc文件格式不對,需要在表單設定裡,把所有內容內嵌為HTML,然後用和把它們包起來
同理可以生成 html 檔案
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10247040/viewspace-663313/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Java Doc 生成文件Java
- 如何實現將markdown檔案實時轉換為html文件HTML
- 用php生成HTML檔案的類PHPHTML
- 生成HTML出現“模板檔案不存在,無法解析文件”的解決辦法(圖文)HTML
- PHP_DOC 實時生成 API 文件 | 掘金技術徵文PHPAPI
- java生成帶html樣式的word檔案JavaHTML
- Domino COM的HTML示例 (轉)HTML
- Word圖示未顯示在.doc和.docx文件檔案
- Python解析XML檔案生成HTMLPythonXMLHTML
- Oracle使用SQL*Plus生成html檔案OracleSQLHTML
- Laravel 實現自定義生成檔案命令Laravel
- 使用dompdf/dompdf實現生成pdf檔案
- jmeter+ant+jenkins 每次執行時如何把之前生成的 html 報告檔案刪除掉JMeterJenkinsHTML
- Java 讀取txt檔案生成Word文件Java
- asp.net (C#)生成html檔案ASP.NETC#HTML
- XSLT實現XML文件轉換成HTML文件XMLHTML
- 使用【APIDOC】生成JavaWeb的API文件(HTML,MarkDown,PDF)APIJavaWebHTML
- 把HTML轉成PDF的4個方案及實現方法HTML
- R 如何把ployly生成的圖表儲存成htmlHTML
- C# 讀取txt檔案生成Word文件C#
- javaWeb不生成臨時檔案實現壓縮檔案下載JavaWeb
- 把HTML表單提交的資料轉化成XML檔案的補充 (轉)HTMLXML
- 請問如何把檔案中的空行過濾掉(要求命令列實現)命令列
- 求救:怎樣把特殊檔案的資料倒入postgre(程式設計實現)!程式設計
- 把HTML插入canvas實現網頁截圖HTMLCanvas網頁
- 【Python】生成html文件-使用dominatePythonHTML
- 快速生成好看實用的介面文件
- AngularJS實現的檔案檔案上傳AngularJS
- RecyclerView實現的彈幕之中文DOCView
- 【方法】Html5實現檔案非同步上傳HTML非同步
- 當編譯VC專案時提示不能開啟生成的動態庫.dll或者.exe檔案編譯
- [原始碼和文件分享]基於WinInet的FTP檔案下載實現原始碼FTP
- 透過程式把Domino郵件的MIME資訊輸出
- python實現圖書管理系統——通過excel檔案或者TXT檔案存放資料PythonExcel
- DOC檔案何去何從
- 用C#實現生成PDF文件(原碼)C#
- 無重新整理上傳檔案以及HTML5下的實現方式HTML
- 瞭解 Lotus Domino Access for Microsoft Outlook 的 Notes.ini 檔案ROS