SetOptionalContentMembership

内容流和可选内容组

描述

原子性替换成员资格字典的组列表、兼容性策略和可选的 PDF 1.6 可见性表达式

语法

Function TPDFlib.SetOptionalContentMembership(MembershipID: Integer; Const OptionalContentGroupIDs: Array Of Integer; Policy: TPDFlibOCMDPolicy; Const Expression: Array Of TPDFlibOCMDExpressionItem): Integer;

参数

MembershipIDNewOptionalContentMembership 返回的句柄
OptionalContentGroupIDs作为兼容性回退保留的非空组数组
Policy回退 /P 策略
Expression扁平的前缀表达式,或用于移除 /VE 的空数组

返回值

0成员关系、组或表达式无效,且未更改现有字典
1成员资格已更新

范围与恢复

第一项必须是 oekAnd、oekOr 或 oekNot

oekNot 需要一个操作数,而 oekAnd 和 oekOr 需要一个或多个操作数

每个运算符后恰有 OperandCount 个前缀操作数;组项目使用 OperandCount = 0

// And(GroupA, Not(GroupB))
Expression[0].Kind := oekAnd;
Expression[0].OperandCount := 2;
Expression[1].Kind := oekGroup;
Expression[1].OptionalContentGroupID := GroupA;
Expression[2].Kind := oekNot;
Expression[2].OperandCount := 1;
Expression[3].Kind := oekGroup;
Expression[3].OptionalContentGroupID := GroupB;

备注

验证和表达式构建相对于项目数为线性,且嵌套限制为 64 层

存在 /VE 时,输出版本至少为 PDF 1.6;而 /OCGs 和 /P 对旧版阅读器仍然可用

另请参阅

TPDFlibOCMDExpressionItem、EnumOptionalContentMembershipExpression