CheckDocumentPolicy

文档属性、合规性

描述

依据文档评估一组声明性内部规则,并报告其中通过的规则

语法

Delphi

Function TPDFlib.CheckDocumentPolicy(Const Rules: WideString): Integer;

参数

Rules每行一个断言,形式为 Group.Key op Value。空行和以 # 开头的行会被忽略

返回值

0未选择文档,或规则文本为空
ID供 GetStringListCount 和 GetStringListItem 使用的字符串列表句柄;使用 ReleaseStringList 释放它

备注

规则主题用于定位 GetDocumentFeatureReport 生成的功能报告:Group,Key,Value 行 Fonts,NotEmbedded,0 的定位方式为 Fonts.NotEmbedded。支持的运算符为 =、!=、<、<=、>、>= 和 exists;两侧都能解析为数字时按数值比较,否则按不区分大小写的文本比较

每个结果行均为 pass 或 fail,后跟规则和实际值,最后一行是 summary,N passed,M failed 未知功能键、格式错误的规则和不受支持的运算符会报告为失败而非被静默忽略,因此策略文件中的拼写错误不会让文档看似合规

这会将接收闸门转化为配置:发布者、档案馆和印刷商无需编写检查代码,即可强制要求完整嵌入字体、禁止加密、限制页数或要求元数据

示例

Rules:=
  'Fonts.NotEmbedded = 0'#13#10+
  'Security.Encrypted = no'#13#10+
  'Document.Pages <= 500'#13#10+
  'Document.Title exists';
ListID:= PDF.CheckDocumentPolicy(Rules);
Last:= PDF.GetStringListItem(ListID, PDF.GetStringListCount(ListID));
if Pos('0 failed', Last)= 0 then
  ShowMessage('document rejected by policy');
PDF.ReleaseStringList(ListID);

另请参阅

GetDocumentFeatureReport、CheckDocumentStructure、CheckFileCompliance