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

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

Общ преглед

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

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

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: и връща компактна разлика само когато стабилното съдържание е променено

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

TextКаноничното тяло на отчета. То съдържа Generated, Input, Checks, Issue mode, по една секция за всяка избрана проверка и блок Summary с Total issues и Result
JSONЕдин обект с title, generated, input, checks, issueMode, sections и summary. Всяка секция има име, статус и масив от низове за проблеми
HTMLСамостоятелен UTF-8 HTML документ. Текстовият отчет е HTML-екраниран и показан в предварително форматиран блок, така че съдържанието на отчета се вижда, без да се тълкува като маркиране
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, за да съберете всички докладвани проблеми

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

Конзолната демонстрация Delphi PreflightReport показва работния поток на отчета, без да добавя потребителски интерфейс, специфичен за приложението. Тя може да проверява един 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

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

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

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

Вижте също

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