Add PDF/A compliance checks and warnings

Added `PdfALevel` and `PdfAWarning` properties to the `PdfExtractionResult` class to store the PDF/A compliance level and indicate if a warning should be displayed for non-compliance.

Updated `Upload.cshtml` to display the PDF/A compliance level and conditionally show a warning message if the document is not PDF/A compliant.

Enhanced `PdfAttachmentExtractorService` to determine the PDF/A compliance level using `PdfDocumentProcessor`, map it to a string representation, and log the compliance level. Added logic to set `PdfAWarning` for non-compliant documents.
This commit is contained in:
OlgunR
2026-05-26 11:16:28 +02:00
parent 5221ee3594
commit 4c90d2e5f1
3 changed files with 33 additions and 0 deletions

View File

@@ -26,6 +26,22 @@ public class PdfAttachmentExtractorService(
using var processor = new PdfDocumentProcessor();
processor.LoadDocument(pdfStream);
// PDF/A-Konformität prüfen
var compatibility = processor.Document.PdfACompatibility;
result.PdfALevel = compatibility switch
{
PdfACompatibility.None => "Kein PDF/A",
PdfACompatibility.PdfA1b => "PDF/A-1b",
PdfACompatibility.PdfA2b => "PDF/A-2b",
PdfACompatibility.PdfA3b => "PDF/A-3b",
_ => compatibility.ToString()
};
result.PdfAWarning = compatibility == PdfACompatibility.None;
logger.LogInformation(
"PDF '{FileName}': Konformität = {Level}",
sourceFileName, result.PdfALevel);
// Fix: .ToList() → IEnumerable → List<T> mit Count-Property
var attachments = processor.Document.FileAttachments.ToList();