Skip to content

PDF插件主要属性参考

概述

本节介绍软航OFFICE文档控件PDF插件的主要属性,这些属性允许开发者控制PDF文档的各种功能和行为,为PDF文档管理系统提供完整的属性控制能力。

工具栏控制属性

CommandBars

说明:
只读;返回PDF工具栏集合对象。可通过对该集合的访问,控制工具栏按钮。

语法:

javascript
var commandbars = plugInObj.CommandBars;

参数说明:

  • plugInObj:OfficeControlObj.ActiveDocument对象

使用示例:

javascript
// 基本用法
var plugInObj = OfficeControlObj.ActiveDocument;
var commandbars = plugInObj.CommandBars;
console.log("PDF工具栏集合:", commandbars);

// 获取指定工具栏
function getCommandBar(barName) {
    var commandbars = OfficeControlObj.ActiveDocument.CommandBars;
    var commandbar = null;
    
    for(var i = 0; i < commandbars.Count; i++) {
        if(barName == commandbars.Item(i).name) {
            commandbar = commandbars.Item(i);
            break;
        }
    }
    
    return commandbar;
}

// 获取View工具栏
var viewToolbar = getCommandBar("View");
if (viewToolbar) {
    console.log("View工具栏获取成功");
} else {
    console.log("View工具栏获取失败");
}

// 隐藏/显示工具栏
function toggleToolbarVisibility(barName, visible) {
    var commandbar = getCommandBar(barName);
    if (commandbar) {
        commandbar.Visible = visible; // true 显示,false隐藏
        console.log(barName + "工具栏" + (visible ? "显示" : "隐藏"));
    }
}

// 隐藏View工具栏
toggleToolbarVisibility("View", false);

// 显示Normal工具栏
toggleToolbarVisibility("Normal", true);

工具栏控制示例:

javascript
// 启用/禁用工具栏按钮
function toggleToolbarButton(barName, buttonIndex, enabled) {
    var commandbar = getCommandBar(barName);
    if (commandbar) {
        commandbar.EnableItem(buttonIndex, enabled); // true 启用,false禁用
        console.log(barName + "工具栏按钮" + buttonIndex + (enabled ? "启用" : "禁用"));
    }
}

// 隐藏/显示工具栏按钮
function toggleToolbarButtonVisibility(barName, buttonIndex, visible) {
    var commandbar = getCommandBar(barName);
    if (commandbar) {
        commandbar.ShowItem(buttonIndex, visible); // true 显示,false隐藏
        console.log(barName + "工具栏按钮" + buttonIndex + (visible ? "显示" : "隐藏"));
    }
}

// 控制View工具栏按钮
var viewToolbar = getCommandBar("View");
if (viewToolbar) {
    // 禁用第4个按钮
    viewToolbar.EnableItem(4, false);
    
    // 隐藏第5个按钮
    viewToolbar.ShowItem(5, false);
    
    console.log("View工具栏按钮控制完成");
}

默认工具栏说明:

javascript
// PDF插件默认工具栏
var defaultToolbars = {
    "Normal": "普通工具栏",
    "View": "视图工具栏", 
    "Secsign": "安全印章工具栏",
    "Search": "搜索工具栏"
};

// 遍历所有工具栏
function listAllToolbars() {
    var commandbars = OfficeControlObj.ActiveDocument.CommandBars;
    console.log("PDF工具栏列表:");
    
    for(var i = 0; i < commandbars.Count; i++) {
        var toolbar = commandbars.Item(i);
        console.log("工具栏" + i + ":", toolbar.name);
    }
}

// 列出所有工具栏
listAllToolbars();

文档保存状态属性

Saved

说明:
布尔型;可读写;读取/设置PDF是否需要保存。该属性用法与OFFICE VBA接口中Document对象下的Saved属性相同。默认值为true,代表PDF文档未被编辑;一旦有在PDF文档签章或进行过其他编辑操作,该属性值即自动变为false。在关闭文档或关闭页面时,可以判断saved值如果为false,就执行保存。

语法:

javascript
// 设置
plugInObj.Saved = {true|false};

// 读取
varObj = plugInObj.Saved;

使用示例:

javascript
// 基本用法
var plugInObj = OfficeControlObj.ActiveDocument;

// 读取保存状态
var isSaved = plugInObj.Saved;
console.log("文档保存状态:", isSaved);

// 设置保存状态
plugInObj.Saved = true;
console.log("文档保存状态已设置为true");

// 检查是否需要保存
function checkSaveStatus() {
    var plugInObj = OfficeControlObj.ActiveDocument;
    
    if (!plugInObj.Saved) {
        console.log("文档需要保存");
        // 执行保存操作
        OfficeControlObj.SaveToURL("/postCGI.jsp", "DocFile", "", "NewDoc.doc", 0);
    } else {
        console.log("文档已保存,无需保存");
    }
}

// 检查保存状态
checkSaveStatus();

保存状态管理示例:

javascript
// 保存状态管理
function manageSaveStatus() {
    var plugInObj = OfficeControlObj.ActiveDocument;
    
    // 监听文档变化
    function onDocumentChange() {
        console.log("文档已修改,保存状态变为false");
        plugInObj.Saved = false;
    }
    
    // 保存文档
    function saveDocument() {
        try {
            OfficeControlObj.SaveToURL("/postCGI.jsp", "DocFile", "", "NewDoc.doc", 0);
            plugInObj.Saved = true;
            console.log("文档保存成功");
        } catch (error) {
            console.error("文档保存失败:", error);
        }
    }
    
    // 关闭前检查保存状态
    function beforeClose() {
        if (!plugInObj.Saved) {
            var shouldSave = confirm("文档已修改,是否保存?");
            if (shouldSave) {
                saveDocument();
            }
        }
    }
    
    return {
        onDocumentChange: onDocumentChange,
        saveDocument: saveDocument,
        beforeClose: beforeClose
    };
}

// 使用保存状态管理
var saveManager = manageSaveStatus();

功能支持属性

IsSupportSecuritySign

说明:
布尔型;可读写;是否支持安全印章。

语法:

javascript
// 设置
plugInObj.IsSupportSecuritySign = {true|false};

// 读取
varObj = plugInObj.IsSupportSecuritySign;

使用示例:

javascript
// 基本用法
var plugInObj = OfficeControlObj.ActiveDocument;

// 设置支持安全印章
plugInObj.IsSupportSecuritySign = true;
console.log("安全印章支持已启用");

// 读取安全印章支持状态
var isSupportSecuritySign = plugInObj.IsSupportSecuritySign;
console.log("安全印章支持状态:", isSupportSecuritySign);

// 安全印章功能控制
function controlSecuritySignSupport(enable) {
    var plugInObj = OfficeControlObj.ActiveDocument;
    plugInObj.IsSupportSecuritySign = enable;
    
    if (enable) {
        console.log("安全印章功能已启用");
        // 可以执行安全印章相关操作
        // enableSecuritySignFeatures();
    } else {
        console.log("安全印章功能已禁用");
        // 禁用安全印章相关操作
        // disableSecuritySignFeatures();
    }
}

// 启用安全印章支持
controlSecuritySignSupport(true);

IsSupportFindText

说明:
布尔型;可读写;是否支持查找。

语法:

javascript
// 设置
plugInObj.IsSupportFindText = {true|false};

// 读取
varObj = plugInObj.IsSupportFindText;

使用示例:

javascript
// 基本用法
var plugInObj = OfficeControlObj.ActiveDocument;

// 设置支持查找
plugInObj.IsSupportFindText = true;
console.log("查找功能支持已启用");

// 读取查找支持状态
var isSupportFindText = plugInObj.IsSupportFindText;
console.log("查找功能支持状态:", isSupportFindText);

// 查找功能控制
function controlFindTextSupport(enable) {
    var plugInObj = OfficeControlObj.ActiveDocument;
    plugInObj.IsSupportFindText = enable;
    
    if (enable) {
        console.log("查找功能已启用");
        // 可以执行查找相关操作
        // enableFindTextFeatures();
    } else {
        console.log("查找功能已禁用");
        // 禁用查找相关操作
        // disableFindTextFeatures();
    }
}

// 启用查找功能支持
controlFindTextSupport(true);

文档内容控制属性

HiddenText

说明:
String型字符串;可读写;读取/设置打开PDF文档要隐藏的文字。

语法:

javascript
// 设置
plugInObj.HiddenText = HID_KEYWORD;

// 读取
varObj = plugInObj.HiddenText;

使用示例:

javascript
// 基本用法
var plugInObj = OfficeControlObj.ActiveDocument;

// 设置隐藏文字
plugInObj.HiddenText = "机密信息";
console.log("隐藏文字已设置");

// 读取隐藏文字
var hiddenText = plugInObj.HiddenText;
console.log("当前隐藏文字:", hiddenText);

// 隐藏文字管理
function manageHiddenText() {
    var plugInObj = OfficeControlObj.ActiveDocument;
    
    // 设置隐藏文字
    function setHiddenText(text) {
        plugInObj.HiddenText = text;
        console.log("隐藏文字设置为:", text);
    }
    
    // 获取隐藏文字
    function getHiddenText() {
        return plugInObj.HiddenText;
    }
    
    // 清除隐藏文字
    function clearHiddenText() {
        plugInObj.HiddenText = "";
        console.log("隐藏文字已清除");
    }
    
    return {
        setHiddenText: setHiddenText,
        getHiddenText: getHiddenText,
        clearHiddenText: clearHiddenText
    };
}

// 使用隐藏文字管理
var hiddenTextManager = manageHiddenText();
hiddenTextManager.setHiddenText("敏感信息");

IsFileEncrypt

说明:
字符型;只读;判断文件是否有被加密。

语法:

javascript
// 读取
varObj = plugInObj.IsFileEncrypt;

使用示例:

javascript
// 基本用法
var plugInObj = OfficeControlObj.ActiveDocument;

// 检查文件是否加密
var isEncrypted = plugInObj.IsFileEncrypt;
console.log("文件加密状态:", isEncrypted);

// 文件加密状态检查
function checkFileEncryption() {
    var plugInObj = OfficeControlObj.ActiveDocument;
    var isEncrypted = plugInObj.IsFileEncrypt;
    
    if (isEncrypted) {
        console.log("文件已加密");
        // 可以执行加密文件相关操作
        // handleEncryptedFile();
    } else {
        console.log("文件未加密");
        // 可以执行普通文件操作
        // handleNormalFile();
    }
    
    return isEncrypted;
}

// 检查文件加密状态
var encryptionStatus = checkFileEncryption();

印章管理属性

DelSignUseCertFilter

说明:
布尔型;可读写;读取/设置删除(撤消)印章时,是否自动过滤使用印章证书使用者进行删章,而不需要再弹出证书列表让用户选择。true:过滤;false:不过滤。

语法:

javascript
// 设置
plugInObj.DelSignUseCertFilter = {true|false};

// 读取
varObj = plugInObj.DelSignUseCertFilter;

使用示例:

javascript
// 基本用法
var plugInObj = OfficeControlObj.ActiveDocument;

// 设置证书过滤
plugInObj.DelSignUseCertFilter = true;
console.log("证书过滤已启用");

// 读取证书过滤状态
var isCertFilterEnabled = plugInObj.DelSignUseCertFilter;
console.log("证书过滤状态:", isCertFilterEnabled);

// 印章删除管理
function manageSignDeletion() {
    var plugInObj = OfficeControlObj.ActiveDocument;
    
    // 启用证书过滤
    function enableCertFilter() {
        plugInObj.DelSignUseCertFilter = true;
        console.log("证书过滤已启用,删除印章时将自动过滤证书");
    }
    
    // 禁用证书过滤
    function disableCertFilter() {
        plugInObj.DelSignUseCertFilter = false;
        console.log("证书过滤已禁用,删除印章时将显示证书列表");
    }
    
    // 检查证书过滤状态
    function checkCertFilterStatus() {
        return plugInObj.DelSignUseCertFilter;
    }
    
    return {
        enableCertFilter: enableCertFilter,
        disableCertFilter: disableCertFilter,
        checkCertFilterStatus: checkCertFilterStatus
    };
}

// 使用印章删除管理
var signDeletionManager = manageSignDeletion();
signDeletionManager.enableCertFilter();

属性分类总结

分类属性类型功能说明
工具栏控制CommandBars只读工具栏集合对象控制工具栏按钮
文档状态Saved可读写保存状态文档是否需要保存
功能支持IsSupportSecuritySign可读写安全印章支持是否支持安全印章
功能支持IsSupportFindText可读写查找功能支持是否支持查找
内容控制HiddenText可读写隐藏文字设置隐藏的文字
文件状态IsFileEncrypt只读加密状态文件是否加密
印章管理DelSignUseCertFilter可读写证书过滤删除印章时是否过滤证书

使用流程

1. 基本PDF插件属性控制流程

javascript
// 基本PDF插件属性控制流程
function basicPDFPluginPropertyControl() {
    var plugInObj = OfficeControlObj.ActiveDocument;
    
    // 设置基本属性
    function setBasicProperties() {
        // 启用安全印章支持
        plugInObj.IsSupportSecuritySign = true;
        
        // 启用查找功能支持
        plugInObj.IsSupportFindText = true;
        
        // 设置隐藏文字
        plugInObj.HiddenText = "机密文档";
        
        console.log("基本属性设置完成");
    }
    
    // 检查文档状态
    function checkDocumentStatus() {
        var isSaved = plugInObj.Saved;
        var isEncrypted = plugInObj.IsFileEncrypt;
        
        console.log("文档保存状态:", isSaved);
        console.log("文档加密状态:", isEncrypted);
    }
    
    return {
        setBasicProperties: setBasicProperties,
        checkDocumentStatus: checkDocumentStatus
    };
}

2. 高级PDF插件属性控制流程

javascript
// 高级PDF插件属性控制流程
function advancedPDFPluginPropertyControl() {
    var plugInObj = OfficeControlObj.ActiveDocument;
    
    // PDF插件属性配置
    var pdfPluginConfig = {
        enableSecuritySign: true,
        enableFindText: true,
        enableCertFilter: true,
        hiddenText: "机密信息"
    };
    
    // 应用PDF插件配置
    function applyPDFPluginConfig() {
        try {
            // 设置功能支持
            plugInObj.IsSupportSecuritySign = pdfPluginConfig.enableSecuritySign;
            plugInObj.IsSupportFindText = pdfPluginConfig.enableFindText;
            plugInObj.DelSignUseCertFilter = pdfPluginConfig.enableCertFilter;
            plugInObj.HiddenText = pdfPluginConfig.hiddenText;
            
            console.log("PDF插件配置应用成功");
        } catch (error) {
            console.error("PDF插件配置应用失败:", error);
        }
    }
    
    // 监控文档状态
    function monitorDocumentStatus() {
        var status = {
            isSaved: plugInObj.Saved,
            isEncrypted: plugInObj.IsFileEncrypt,
            hiddenText: plugInObj.HiddenText
        };
        
        console.log("文档状态监控:", status);
        return status;
    }
    
    return {
        applyPDFPluginConfig: applyPDFPluginConfig,
        monitorDocumentStatus: monitorDocumentStatus
    };
}

3. PDF插件属性质量控制流程

javascript
// PDF插件属性质量控制流程
function pdfPluginPropertyQualityControl() {
    // 处理PDF插件属性质量控制
    function controlPDFPluginPropertyQuality() {
        var pdfPluginPropertyQuality = {
            totalProperties: 0,
            successfulProperties: 0,
            failedProperties: 0,
            qualityScore: 0
        };
        
        // 计算质量分数
        if (pdfPluginPropertyQuality.totalProperties > 0) {
            pdfPluginPropertyQuality.qualityScore = (pdfPluginPropertyQuality.successfulProperties / pdfPluginPropertyQuality.totalProperties) * 100;
        }
        
        console.log("PDF插件属性质量控制:", pdfPluginPropertyQuality);
        return pdfPluginPropertyQuality;
    }
    
    // 执行质量控制
    var qualityResult = controlPDFPluginPropertyQuality();
    console.log("PDF插件属性质量控制结果:", qualityResult);
}

完整示例

1. 基础PDF插件属性控制

javascript
// 基础PDF插件属性控制示例
function basicPDFPluginPropertyControl() {
    var plugInObj = OfficeControlObj.ActiveDocument;
    
    // 设置基本属性
    function setBasicProperties() {
        // 启用安全印章支持
        plugInObj.IsSupportSecuritySign = true;
        
        // 启用查找功能支持
        plugInObj.IsSupportFindText = true;
        
        console.log("基本属性设置完成");
    }
    
    // 检查文档状态
    function checkDocumentStatus() {
        var isSaved = plugInObj.Saved;
        var isEncrypted = plugInObj.IsFileEncrypt;
        
        console.log("文档状态:", { isSaved, isEncrypted });
    }
    
    return {
        setBasicProperties: setBasicProperties,
        checkDocumentStatus: checkDocumentStatus
    };
}

2. 高级PDF插件属性控制

javascript
// 高级PDF插件属性控制示例
function advancedPDFPluginPropertyControl() {
    var plugInObj = OfficeControlObj.ActiveDocument;
    
    // PDF插件属性管理
    var pdfPluginPropertyManager = {
        isSecuritySignEnabled: true,
        isFindTextEnabled: true,
        isCertFilterEnabled: true
    };
    
    // 设置安全印章支持
    function setSecuritySignSupport(enabled) {
        if (pdfPluginPropertyManager.isSecuritySignEnabled) {
            plugInObj.IsSupportSecuritySign = enabled;
            console.log("安全印章支持:", enabled ? "启用" : "禁用");
        }
    }
    
    // 设置查找功能支持
    function setFindTextSupport(enabled) {
        if (pdfPluginPropertyManager.isFindTextEnabled) {
            plugInObj.IsSupportFindText = enabled;
            console.log("查找功能支持:", enabled ? "启用" : "禁用");
        }
    }
    
    return {
        setSecuritySignSupport: setSecuritySignSupport,
        setFindTextSupport: setFindTextSupport
    };
}

3. PDF插件属性质量控制

javascript
// PDF插件属性质量控制示例
function pdfPluginPropertyQualityControl() {
    // PDF插件属性质量控制
    function controlPDFPluginPropertyQuality() {
        var pdfPluginPropertyQuality = {
            commandBars: 0,
            saved: 0,
            securitySign: 0,
            findText: 0,
            hiddenText: 0,
            encryption: 0,
            certFilter: 0,
            errors: []
        };
        
        // 监控PDF插件属性质量
        function monitorPDFPluginPropertyQuality(propertyType, success) {
            if (success) {
                pdfPluginPropertyQuality[propertyType]++;
            } else {
                pdfPluginPropertyQuality.errors.push({
                    property: propertyType,
                    timestamp: new Date().toISOString()
                });
            }
        }
        
        console.log("PDF插件属性质量控制:", pdfPluginPropertyQuality);
        return pdfPluginPropertyQuality;
    }
    
    // 执行质量控制
    var qualityResult = controlPDFPluginPropertyQuality();
    console.log("PDF插件属性质量控制结果:", qualityResult);
}

注意事项

  1. 属性访问:确保在访问PDF插件属性前,文档已正确加载
  2. 属性验证:验证PDF插件属性值的有效性,避免设置无效值
  3. 错误处理:实现完善的错误处理机制
  4. 性能考虑:避免频繁访问PDF插件属性
  5. 资源管理:及时清理不需要的资源
  6. 状态同步:保持PDF插件状态的一致性
  7. 用户体验:确保PDF插件属性设置不影响用户体验

错误处理

javascript
// PDF插件属性错误处理
function handlePDFPluginPropertyError(propertyType, error) {
    console.error("PDF插件属性处理失败:", propertyType, error.message);
    
    switch(propertyType) {
        case 'CommandBars':
            console.log("工具栏属性失败,请检查:");
            console.log("1. 文档是否已加载");
            console.log("2. 工具栏是否存在");
            console.log("3. 工具栏访问是否正确");
            break;
        case 'Saved':
            console.log("保存状态属性失败,请检查:");
            console.log("1. 文档状态是否正常");
            console.log("2. 保存状态设置是否正确");
            console.log("3. 文档是否可写");
            break;
        case 'IsSupportSecuritySign':
            console.log("安全印章支持属性失败,请检查:");
            console.log("1. 安全印章功能是否可用");
            console.log("2. 属性设置是否正确");
            console.log("3. 文档权限是否足够");
            break;
        default:
            console.log("未知PDF插件属性处理失败");
    }
}

最佳实践

1. PDF插件属性管理最佳实践

javascript
// PDF插件属性管理最佳实践
function pdfPluginPropertyManagementBestPractice() {
    // PDF插件属性配置
    var pdfPluginPropertyConfig = {
        enableLogging: true,
        enableValidation: true,
        enableErrorHandling: true,
        enableQualityControl: true
    };
    
    // 应用PDF插件属性配置
    function applyPDFPluginPropertyConfig() {
        try {
            // 设置PDF插件属性处理
            if (pdfPluginPropertyConfig.enableLogging) {
                console.log("PDF插件属性日志已启用");
            }
            
            if (pdfPluginPropertyConfig.enableValidation) {
                console.log("属性验证已启用");
            }
            
            console.log("PDF插件属性配置应用成功");
        } catch (error) {
            handlePDFPluginPropertyError('applyPDFPluginPropertyConfig', error);
        }
    }
    
    // 应用配置
    applyPDFPluginPropertyConfig();
}

2. PDF插件属性质量控制最佳实践

javascript
// PDF插件属性质量控制最佳实践
function pdfPluginPropertyQualityControlBestPractice() {
    // PDF插件属性质量控制
    function controlPDFPluginPropertyQuality() {
        try {
            // PDF插件属性质量控制
            var pdfPluginPropertyQuality = {
                totalProperties: 0,
                successfulProperties: 0,
                failedProperties: 0,
                qualityScore: 0
            };
            
            // 计算质量分数
            if (pdfPluginPropertyQuality.totalProperties > 0) {
                pdfPluginPropertyQuality.qualityScore = (pdfPluginPropertyQuality.successfulProperties / pdfPluginPropertyQuality.totalProperties) * 100;
            }
            
            console.log("PDF插件属性质量控制完成:", pdfPluginPropertyQuality);
            return pdfPluginPropertyQuality;
        } catch (error) {
            console.error("PDF插件属性质量控制失败:", error.message);
            return null;
        }
    }
    
    // 执行质量控制
    var qualityResult = controlPDFPluginPropertyQuality();
    console.log("PDF插件属性质量控制结果:", qualityResult);
}

技术要点

  1. 属性访问:确保在访问PDF插件属性前,文档已正确加载
  2. 属性验证:验证PDF插件属性值的有效性,避免设置无效值
  3. 错误处理:完善的错误处理机制
  4. 性能优化:避免频繁访问PDF插件属性
  5. 资源管理:及时清理不需要的资源
  6. 状态同步:保持PDF插件状态的一致性
  7. 用户体验:确保PDF插件属性设置不影响用户体验