Skip to content

适用于WORD文档的简化方法

说明:此节的方法都为了简便用户编程的难度,封装的Word基本操作的方法。如果需做更细致的操作,请参考技术支持网站(dev.ntko.com)上的文档。

书签操作

GetBookmarkValue

语法

javascript
GetBookmarkValue(BookmarkName)

功能

此方法可以取得文档中指定书签的值。

参数

名称必选/可选数据类型说明
BookmarkName必选string书签的索引或者名称

返回值

String型字符串。书签值。

说明

此方法可以取得文档中指定书签的值。

示例代码

javascript
// 获取书签值
var bookmarkValue = OCX_OBJ.GetBookmarkValue("姓名");
console.log("书签值:", bookmarkValue);

// 获取多个书签值
var name = OCX_OBJ.GetBookmarkValue("姓名");
var company = OCX_OBJ.GetBookmarkValue("公司");
var date = OCX_OBJ.GetBookmarkValue("日期");

SetBookmarkValue

语法

javascript
SetBookmarkValue(BookmarkName, value)

功能

设置指定书签的值。

参数

名称必选/可选数据类型说明
BookmarkName必选string书签的索引或者名称
value必选string书签值

返回值

无返回值。

说明

设置指定书签的值。

示例代码

javascript
// 设置书签值
OCX_OBJ.SetBookmarkValue("姓名", "张三");
OCX_OBJ.SetBookmarkValue("公司", "某某科技有限公司");
OCX_OBJ.SetBookmarkValue("日期", "2024-01-01");

// 批量设置书签值
var bookmarkData = {
    "姓名": "李四",
    "部门": "技术部",
    "职位": "软件工程师",
    "入职日期": "2024-01-15"
};

for (var key in bookmarkData) {
    OCX_OBJ.SetBookmarkValue(key, bookmarkData[key]);
}

模板操作

AddTemplateFromLocal

语法

javascript
AddTemplateFromLocal(filename, [PromptSelect], [IsConfirmConversions])

功能

从本地增加插入模板到当前光标处。

参数

名称必选/可选数据类型说明
filename必选string本地模板文件路径
PromptSelect可选bool是否允许用户选择
IsConfirmConversions可选bool当模板文件不是WORD类型时,是否提示转换,默认true

返回值

无返回值。

说明

从本地增加插入模板到当前光标处。

注意:使用此方法就可以实现套红功能。

示例代码

javascript
// 基本用法 - 插入本地模板
OCX_OBJ.AddTemplateFromLocal("C:\\templates\\合同模板.docx");

// 允许用户选择模板文件
OCX_OBJ.AddTemplateFromLocal("", true);

// 不提示转换
OCX_OBJ.AddTemplateFromLocal("C:\\templates\\模板.doc", false, false);

// 套红功能示例
function applyTemplate(templatePath) {
    OCX_OBJ.AddTemplateFromLocal(templatePath, false, true);
}

AddTemplateFromURL

语法

javascript
AddTemplateFromURL(URL, [IsConfirmConversions])

功能

该方法用来将一个从URL下载的word文档插入到当前文档的光标处。

参数

名称必选/可选数据类型说明
URL必选string远程模板文件URL
IsConfirmConversions可选bool当模板文件不是WORD类型时,是否提示转换,默认true

返回值

无返回值。

说明

该方法用来将一个从URL下载的word文档插入到当前文档的光标处。可以用来使用预定义的模板套红。 该函数的参数URL,可以是绝对或者相对当前网页的URL,用来指明要下载的Word文档的地址。

注意:使用此方法就可以实现套红功能。

示例代码

javascript
// 基本用法 - 从URL插入模板
OCX_OBJ.AddTemplateFromURL("https://example.com/templates/合同模板.docx");

// 不提示转换
OCX_OBJ.AddTemplateFromURL("https://example.com/templates/模板.doc", false);

// 套红功能示例
function applyRemoteTemplate(templateUrl) {
    OCX_OBJ.AddTemplateFromURL(templateUrl, true);
}

// 相对路径模板
OCX_OBJ.AddTemplateFromURL("./templates/标准模板.docx");

痕迹保留操作

TrackRevisions

语法

javascript
TrackRevisions(vbool)

功能

设置文档进入或者退出痕迹保留状态。

参数

名称必选/可选数据类型说明
vbool可选bool是否保留痕迹

返回值

无返回值。

说明

设置文档进入或者退出痕迹保留状态。true代表保留痕迹,false代表退出痕迹保留。

示例代码

javascript
// 启用痕迹保留
OCX_OBJ.TrackRevisions(true);

// 关闭痕迹保留
OCX_OBJ.TrackRevisions(false);

// 切换痕迹保留状态
function toggleTrackRevisions() {
    var currentState = OCX_OBJ.TrackRevisions;
    OCX_OBJ.TrackRevisions(!currentState);
}

EnterRevisionMode

语法

javascript
EnterRevisionMode(vbool, [password])

功能

设置文档进入或者退出强制痕迹保留状态。

参数

名称必选/可选数据类型说明
vbool必选bool是否启用强制留痕
Password可选string修订模式保护密码

返回值

无返回值。

说明

设置文档进入或者退出强制痕迹保留状态,即启用文件保护的修订模式。参数vbool值为true代表保留痕迹,false代表退出痕迹保留。参数password代表文件保护修订模式的保护密码。

示例代码

javascript
// 启用强制痕迹保留(无密码)
OCX_OBJ.EnterRevisionMode(true);

// 启用强制痕迹保留(带密码)
OCX_OBJ.EnterRevisionMode(true, "123456");

// 退出强制痕迹保留
OCX_OBJ.EnterRevisionMode(false);

// 带密码保护的修订模式
function enableProtectedRevision(password) {
    OCX_OBJ.EnterRevisionMode(true, password);
}

ShowRevision

语法

javascript
showRevision(RevisionType)

功能

设置痕迹显示状态。

参数

名称必选/可选数据类型说明
RevisionType必选long痕迹显示状态

返回值

无返回值。

说明

设置痕迹显示状态,0代表显示修订,1代表显示原始修订,2代表显示最终修订。

痕迹显示状态对照表

说明
0显示修订
1显示原始修订
2显示最终修订

示例代码

javascript
// 显示修订痕迹
OCX_OBJ.showRevision(0);

// 显示原始修订
OCX_OBJ.showRevision(1);

// 显示最终修订
OCX_OBJ.showRevision(2);

// 切换痕迹显示状态
function toggleRevisionDisplay() {
    var currentType = OCX_OBJ.showRevision;
    var nextType = (currentType + 1) % 3;
    OCX_OBJ.showRevision(nextType);
}

完整示例

文档模板管理系统

javascript
// 文档模板管理系统
class DocumentTemplateManager {
    // 应用本地模板
    static applyLocalTemplate(templatePath, allowUserSelect = false) {
        OCX_OBJ.AddTemplateFromLocal(templatePath, allowUserSelect, true);
    }
    
    // 应用远程模板
    static applyRemoteTemplate(templateUrl, confirmConversion = true) {
        OCX_OBJ.AddTemplateFromURL(templateUrl, confirmConversion);
    }
    
    // 填充书签数据
    static fillBookmarks(data) {
        for (var key in data) {
            OCX_OBJ.SetBookmarkValue(key, data[key]);
        }
    }
    
    // 获取书签数据
    static getBookmarkData(bookmarkNames) {
        var data = {};
        bookmarkNames.forEach(function(name) {
            data[name] = OCX_OBJ.GetBookmarkValue(name);
        });
        return data;
    }
}

// 痕迹管理工具
class RevisionManager {
    // 启用痕迹保留
    static enableTracking() {
        OCX_OBJ.TrackRevisions(true);
    }
    
    // 禁用痕迹保留
    static disableTracking() {
        OCX_OBJ.TrackRevisions(false);
    }
    
    // 启用强制痕迹保留
    static enableProtectedRevision(password = null) {
        OCX_OBJ.EnterRevisionMode(true, password);
    }
    
    // 禁用强制痕迹保留
    static disableProtectedRevision() {
        OCX_OBJ.EnterRevisionMode(false);
    }
    
    // 设置痕迹显示状态
    static setRevisionDisplay(type) {
        OCX_OBJ.showRevision(type);
    }
    
    // 切换痕迹显示
    static toggleRevisionDisplay() {
        var types = [0, 1, 2]; // 显示修订、原始修订、最终修订
        var currentType = 0; // 假设当前状态
        var nextType = types[(types.indexOf(currentType) + 1) % types.length];
        OCX_OBJ.showRevision(nextType);
    }
}

套红功能实现

javascript
// 套红功能实现
function implementRedlining() {
    // 1. 应用模板
    function applyTemplate(templatePath) {
        OCX_OBJ.AddTemplateFromLocal(templatePath, false, true);
    }
    
    // 2. 填充数据
    function fillTemplateData(data) {
        DocumentTemplateManager.fillBookmarks(data);
    }
    
    // 3. 启用痕迹保留
    function enableRevisionTracking() {
        RevisionManager.enableTracking();
    }
    
    // 4. 设置显示状态
    function setDisplayMode(mode) {
        RevisionManager.setRevisionDisplay(mode);
    }
    
    // 完整套红流程
    function completeRedliningProcess(templatePath, data) {
        // 应用模板
        applyTemplate(templatePath);
        
        // 填充数据
        fillTemplateData(data);
        
        // 启用痕迹保留
        enableRevisionTracking();
        
        // 设置显示模式
        setDisplayMode(0); // 显示修订
    }
}

文档处理工作流

javascript
// 文档处理工作流
function documentProcessingWorkflow() {
    // 1. 创建新文档
    function createNewDocument() {
        // 创建新文档的逻辑
    }
    
    // 2. 应用模板
    function applyDocumentTemplate(templateType) {
        var templates = {
            "合同": "./templates/合同模板.docx",
            "报告": "./templates/报告模板.docx",
            "通知": "./templates/通知模板.docx"
        };
        
        if (templates[templateType]) {
            OCX_OBJ.AddTemplateFromLocal(templates[templateType]);
        }
    }
    
    // 3. 填充文档数据
    function populateDocumentData(documentData) {
        DocumentTemplateManager.fillBookmarks(documentData);
    }
    
    // 4. 启用修订模式
    function enableDocumentRevision() {
        RevisionManager.enableTracking();
        RevisionManager.enableProtectedRevision("admin123");
    }
    
    // 5. 设置显示状态
    function configureDisplaySettings() {
        RevisionManager.setRevisionDisplay(0); // 显示修订
    }
    
    // 完整工作流
    function executeWorkflow(templateType, data) {
        createNewDocument();
        applyDocumentTemplate(templateType);
        populateDocumentData(data);
        enableDocumentRevision();
        configureDisplaySettings();
    }
}

注意事项

  1. 书签操作

    • 书签名称区分大小写
    • 确保书签在文档中存在
    • 书签值只能是字符串类型
  2. 模板操作

    • 本地模板路径必须是完整路径
    • 网络模板需要确保URL可访问
    • 模板文件格式要正确
  3. 痕迹保留

    • TrackRevisions是普通痕迹保留
    • EnterRevisionMode是强制痕迹保留
    • 强制痕迹保留可以设置密码保护
  4. 显示状态

    • 0:显示修订(推荐)
    • 1:显示原始修订
    • 2:显示最终修订
  5. 套红功能

    • 先应用模板,再填充数据
    • 启用痕迹保留以记录修改
    • 设置合适的显示状态
  6. 错误处理

    • 检查书签是否存在
    • 验证模板文件路径
    • 处理网络连接问题
  7. 性能优化

    • 批量操作书签
    • 合理使用痕迹保留
    • 避免频繁切换显示状态