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 масив и дървото с имена се излъчват заедно

Свързани API