Отчети за предварителна проверка
Съответствие, Проверка на документ, Автоматизация
Общ преглед
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