SetOptionalContentMembership
內容串流與選用內容群組
描述
以原子方式取代成員字典的群組清單、相容性政策與選填的 PDF 1.6 可見性運算式
語法
Function TPDFlib.SetOptionalContentMembership(MembershipID: Integer; Const OptionalContentGroupIDs: Array Of Integer; Policy: TPDFlibOCMDPolicy; Const Expression: Array Of TPDFlibOCMDExpressionItem): Integer;參數
| MembershipID | NewOptionalContentMembership 傳回的控制代碼 |
|---|---|
| OptionalContentGroupIDs | 保留作為相容性後備的非空群組陣列 |
| Policy | The fallback /P policy |
| Expression | 扁平字首運算式;空陣列表示移除 /VE |
傳回值
| 0 | 成員關係、群組或運算式無效,既有字典未被更動 |
|---|---|
| 1 | 成員關係已更新 |
運算式格式
The first item must be oekAnd, oekOr or oekNotoekNot requires one operand, while oekAnd and oekOr require one or more operandsEach operator is followed by exactly OperandCount prefix operands; group items use 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;備註Validation and expression construction are linear in the number of items and nesting is limited to 64 levels
出現 oekNot 時輸出版本至少 PDF 1.6;oekAnd 與 oekOr 則對較舊的閱讀器仍可用
OperandCountOperandCount = 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