Отчети за предварителна проверка

Съответствие, Проверка на документ, Автоматизация

Общ преглед

PDFlibPas може да изпълнява вградените си проверки за съответствие с PDF/A и PDF/UA-1 върху външен PDF файл и да превръща резултата в повторно използваем изходен отчет. Използвайте API за отчетите, когато приложение или сборна верига се нуждае от същата диагностика като CheckFileCompliance, но не иска да управлява директно дръжки на string-list

Конвейерът на отчетите е умишлено наслоен. `CheckFileCompliance` остава нисконивовият API, който връща дръжки на списък с проблеми. `CreatePreflightReport` форматира избраните проверки в стабилно тяло в обикновен текст. `CreatePreflightReportEx` преобразува същия текстов отчет в текст, JSON, HTML или CSV, така че всички формати споделят едно и също състояние PASS/FAIL и един и същ брой проблеми

Прегледайте синтаксиса, параметрите и върнатите стойности, преди да използвате това API. Оригиналните кодови блокове са запазени, за да могат примерите да се копират без промени CreatePreflightReport, CreatePreflightReportEx

API на библиотеката

CheckFileComplianceИзпълнява една избрана проверка за съответствие върху PDF файл и връща `0` при успех или StringListID с редове за проблемите
CreatePreflightReportИзпълнява проверките за PDF/A, PDF/UA-1 или и двете и връща текстов отчет с метаданни в заглавката, един раздел за всяка проверка и финално резюме
CreatePreflightReportExВръща същия отчет като текст (`0`), JSON (`1`), HTML (`2`) или CSV (`3`) формат. Неизвестните стойности за формата се свеждат до текст
SavePreflightReportЗаписва текстовия отчет като UTF-8 и създава родителската директория, когато е нужно
SavePreflightReportExЗаписва текстов, JSON, HTML или CSV отчет като UTF-8 и създава родителската директория, когато е нужно
ComparePreflightReportsСравнява два текстови отчета, игнорира променливите редове `Generated:` с времеви печати и връща компактна diff само когато стабилното съдържание се е променило

Спецификация на формата

TextКаноничното тяло на отчета. То съдържа `Generated`, `Input`, `Checks`, `Issue mode`, един раздел за всяка избрана проверка и блок `Summary` с `Total issues` и `Result`
JSONЕдин JSON обект с `title`, `generated`, `input`, `checks`, `issueMode`, `sections` и `summary`. Всеки раздел има име, статус и масив от низове с проблеми
HTMLСамостоятелен HTML документ в UTF-8. Текстовият отчет е HTML-escaped и се показва в предварително форматиран блок, така че съдържанието е видимо, без да се интерпретира като маркировка
CSVРедовете използват фиксираните колони `kind,section,status,code,message`. Редовете `meta` носят полетата от заглавката, редовете `check` носят статус PASS/FAIL на раздела, редовете `issue` разделят числовите кодове на проблеми от съобщенията, а редовете `summary` носят крайните общи стойности

Избор на съответствие

API за отчетите използват битова маска за ComplianceTests: `1` избира PDF/A, `2` избира PDF/UA-1, а `3` избира и двете. Подаването на `0` също изпълнява и двете проверки. Options в момента използва бит `1`, за да спре всяка избрана проверка след първия проблем; подайте `0`, за да съберете всички отчетени проблеми

Демо от командния ред

Конзолната демонстрация `PreflightReport` в Delphi показва работния поток на отчетите без да добавя интерфейс, специфичен за приложението. Тя може да валидира един PDF, да генерира форматиран изход, да сравнява нов текстов отчет с базова линия или да обработва пакетно директория

PreflightReport.exe --input "C:\PDFs\invoice.pdf" --output "C:\Reports\invoice.preflight.txt"
PreflightReport.exe --input "C:\PDFs\invoice.pdf" --output "C:\Reports\invoice.preflight.json" --json
PreflightReport.exe --input "C:\PDFs\invoice.pdf" --output "C:\Reports\invoice.preflight.csv" --format csv
PreflightReport.exe --input "C:\PDFs\invoice.pdf" --output "C:\Reports\invoice.preflight.txt" --compare "C:\Baselines\invoice.preflight.txt"
PreflightReport.exe --input-dir "C:\PDFs" --output-dir "C:\Reports" --recursive --format html

Режимът за единичен файл връща exit code `0`, когато избраните проверки не отчитат проблеми, `1` при грешки на командния ред или по време на изпълнение и `2`, когато е отчетен някакъв проблем или сравнението с базовата линия се различава. Режимът за директория записва по един файл `<basename>.preflight.<ext>` за всеки PDF и добавя файл `preflight-summary.csv` с пътя към източника, статуса PASS/FAIL, броя проблеми и пътя към отчета

Бележки за сравнение

`ComparePreflightReports` е дефинирана за текстови отчети. Тя трябва да получава базовия текстов отчет и новогенерирания текстов отчет, дори когато видимият за потребителя изход за същото изпълнение е JSON, HTML или CSV. Сравнителят нормализира редовете `Generated:`, защото времевите печати се променят при всяко изпълнение; всички други стабилни редове се сравняват по ред с малък прозорец за предварително гледане, за да останат дифовете за вмъкване и изтриване четими

Вижте също

CheckFileCompliance, CreatePreflightReport, CreatePreflightReportEx, SavePreflightReport, SavePreflightReportEx, ComparePreflightReports, GetPDFUADiagnostics