THotPDF.ValidatePDFA4 Method
Валидира генериран или зареден граф от обекти спрямо поддържаните профили PDF/A-4 base, PDF/A-4e engineering или PDF/A-4f associated-file и връща стабилна структурирана диагностика
Декларация
function ValidatePDFA4(
const Options: THPDFPDFA4ValidationOptions;
out Issues: THPDFPDFA4ValidationIssues): boolean; overload;
function ValidatePDFA4(
const Options: THPDFPDFA4ValidationOptions;
out Findings: THPDFComplianceFindings): boolean; overload;
Unit
HPDFDoc
Типове профил и тежест
THPDFPDFA4Profile = (
p4pAutomatic,
p4pBase,
p4pEngineering,
p4pAssociatedFiles
);
THPDFPDFA4IssueSeverity = (
p4isWarning,
p4isError
);
THPDFPDFA4Profile избира извод от метаданни или изричен профил на съответствие, докато THPDFPDFA4IssueSeverity разграничава препоръчителна диагностика от грешки при валидиране
Опции
| Поле | Предназначение |
|---|---|
Profile | Избира автоматично откриване по метаданни, base, engineering или валидация на свързани файлове |
MaxObjects | Ограничава итеративното обхождане на графа от обекти и по подразбиране е 1 000 000 обекта |
MaxIssues | Ограничава задържаната диагностика и по подразбиране е 1 024 проблема |
MaxDecodedBytes | Ограничава кумулативните декодирани байтове от метаданни, ICC и content поток и по подразбиране е 64 MiB |
MaxContentTokens | Ограничава кумулативните токени на content потока и по подразбиране е 4 000 000 токена |
CheckEmbeddedFonts | Проверява шрифтовете при рисуване за вградена шрифтова програма |
CheckAnnotationAppearances | Проверява флаговете на анотациите и нормалните потоци външен вид |
CheckOptionalContent | Проверява имената и уникалността на конфигурациите на опционално съдържание |
CheckColourSpaces | Проверява рисуван цвят на устройство, ICC профили, output intent, стойности по подразбиране, изображения, шейдинги, форми и групи на прозрачност |
CheckTransparency | Проверява рисувана алфа, soft маски, режимы на смесване и покритието на пространството за смесване на ниво страница |
CheckCompositeFonts | Проверява Type 0 наследници, CIDSystemInfo, съвместимост на CMap и ограниченията на CIDToGIDMap |
CheckMetadataPackets | Проверява всеки поток с метаданни за ограничения UTF-8, заглавка на пакет, RDF плик и идентификация PDF/A |
Диагностика
Всеки THPDFPDFA4ValidationIssue докладва тежест, стабилен код с пространство от имена, приложимата клауза от ISO 19005-4, път до обект, номер на обект, индекс на страница от нулата, когато е известен, и четливо от човек съобщение
Оверлоудът THPDFComplianceFindings разкрива същото обхождане чрез споделения машиночетим модел на находки с профил PDF/A-4 и състояние на поправка crsNotAttempted
Валидаторът обхваща идентификация PDF 2.0, състояние на trailer ID и шифроване, всеки пакет с метаданни, ограниченията на Info, ICC заглавки и брой канали, output intent на документа и страницата, рисуван цвят на устройство, наследявано графично състояние през масиви от content потоци и вложени Form XObjects, маски на изображения, шейдинги, прозрачност, вграждане на шрифтове при рисуване, връзки на composite шрифтове, анотации и външен вид, ограничения на AcroForm, действия и допълнителни действия, свързани файлове, опционално съдържание, външни указатели и специфичните за профила правила за 3D или прикачени файлове
Находките за цвят и прозрачност се основават на операторите за рисуване, а не само на тези за задаване на цвят; токенизацията на съдържанието и преизползването на декодирани потоци се кешират, като всяко извикване продължава да оценява наследеното графично състояние за собствения си контекст на страница или форма
Лимитите за декодирани байтове, content токени, обекти и задържани проблемы се провалят сигурно със стабилни находки pdfa4.validation.*, преди неограничена работа да може да продължи
Пример
var
Options: THPDFPDFA4ValidationOptions;
Issues: THPDFPDFA4ValidationIssues;
begin
Options := THPDFPDFA4ValidationOptions.Default;
Options.Profile := p4pAutomatic;
if not PDF.ValidatePDFA4(Options, Issues) then
raise Exception.CreateFmt('%s at %s',
[String(Issues[0].Code), String(Issues[0].Path)]);
end;
Поведение при генериране
EndDoc автоматично изпълнява валидатора за '4', '4E' и '4F' и вдига изключение преди сериализация, когато остава грешка
Генерирането PDF/A-4 пропуска записа Info в trailer, PDF/A-4f винаги създава необходимото дърво с имена EmbeddedFiles, а анотациите за прикачени файлове се приемат само от PDF/A-4f, където вграденият поток, Filespec, AF връзката, каталожният AF масив и дървото с имена се излъчват заедно