公文处理方案实现之使用模板新建文档并合并正文内容

<script type="text/javascript">

var wordApp = new ActiveXObject("word.application");
wordApp.Visible 
= true;

///    <summary>
//
/        依模板新建一个文档,合并正文内容到新建文档中并设置字体字号。
//
/     设置每个域的值
//
/    </summary>
//
/    <param name="wordApp">Word实例</param>
//
/    <param name="templatePath">Word模板全路径</param>
//
/    <param name="wordFilePath">公文正文内容文全路径</param>
//
/    <param name="regionValues">域名和值的数组 [{name:"name1", value:"value1"}]</param>
//
/    <returns type="Document">返回新建Word的文档实例</returns>
function MergeDocument(wordApp , templatePath, wordFilePath, regionValues)
{
    
var docPreview = null;

    
try
    {
        
//通过模板新建文档
        docPreview = wordApp.Documents.Add(templatePath);
        
        
//找到正文域
        var bmWord = docPreview.Bookmarks.Item("正文");
        
        
//提取名称
        var bmName = bmWord.Name;
        
        
//得到区域
        var desRange = bmWord.Range;
        
        
//设置为空字串,注意不能是 ''
        //这一步导致域被删除
        desRange.Text = ' ';
        
//新建一个域
        docPreview.Bookmarks.Add(bmName, desRange);
        
        
//再次得到区域
        desRange = bmWord.Range
        
        
//先收缩,这样导入时,不会把域删除
        desRange.Collapse();
        
        
//导入合并正文
        desRange.ImportFragment(wordFilePath, true);
        
        
//再次得到域区域
        desRange = bmWord.Range
        
        
//设置正文内容的格式
        desRange.Font.Size = 16;
        
        
//最后删除域
        bmWord.Delete();
        
        
//设置每个域的值
        for(var i = 0; i < regionValues.length; ++i)
        {
            
var rv = regionValues[i];
            
try
            {
                
//不保存域,直接替换
                docPreview.Bookmarks.Item(rv.name).Range.Text = rv.value;
            }
            
catch(e)
            {
            }
        }
        
        
return docPreview;
        
    }
    
catch(e)
    {
        alert(e);
        
return null;
    }
}

var doc = MergeDocument(wordApp, 'e:\\test\\temp.dot''e:\\test\\word.doc'
        [
            {name:
"主送", value:"全通公司"},
            {name:
"标题", value:"正文标题"},
            {name:
"文号", value:"河北移动〔2009〕88号"},
            {name:
"封发时间", value:"二○○九年九月七日"},
            {name:
"抄送", value:"抄送单位"},
            {name:
"印发单位", value:"印发单位"},
            {name:
"印发日期", value:"2009年9月7日"}
        ]);


</script>

posted @ 2009-11-27 11:27  阿牛  阅读(592)  评论(0编辑  收藏  举报