<
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 >
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 >