CheckDocumentPolicy
Свойства документа, Соответствие стандартам
Описание
Проверяет документ по списку декларативных внутренних правил и сообщает, какие прошли
Синтаксис
Delphi
Function TPDFlib.CheckDocumentPolicy(Const Rules: WideString): Integer;Параметры
| Rules | One assertion per line in the form Group.Key op Value. Blank lines and lines starting with # are ignored. |
|---|
Возвращаемые значения
| 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