Appearance
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);
}
注意事项
- 属性访问:确保在访问PDF插件属性前,文档已正确加载
- 属性验证:验证PDF插件属性值的有效性,避免设置无效值
- 错误处理:实现完善的错误处理机制
- 性能考虑:避免频繁访问PDF插件属性
- 资源管理:及时清理不需要的资源
- 状态同步:保持PDF插件状态的一致性
- 用户体验:确保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);
}
技术要点
- 属性访问:确保在访问PDF插件属性前,文档已正确加载
- 属性验证:验证PDF插件属性值的有效性,避免设置无效值
- 错误处理:完善的错误处理机制
- 性能优化:避免频繁访问PDF插件属性
- 资源管理:及时清理不需要的资源
- 状态同步:保持PDF插件状态的一致性
- 用户体验:确保PDF插件属性设置不影响用户体验