ImageGear .NET - Updated
Verify PDF Format Compliance
User Guide > How to Work with... > PDF > How to... > Work with PDF Format Compliance > Verify PDF Format Compliance

ImageGear .NET provides the ImGearPDFPreflight.VerifyCompliance method to validate if a PDF document was created in compliance with PDF/A or PDF/X standards.
 
This method does not change the original PDF document; it just analyzes the content of a PDF document and reports detected incompliance. The verifier report is returned as a tree, grouped by the common document part and the pages. Each node in the report tree represented by ImGearPDFPreflightReport class corresponds to an incompliance with PDF/A or PDF/X standards.

The status code of each reported incompliance node can have one of the following ImGearPDFPreflightStatusCode values:

PDF annotations can only be verified while they reside in a PDF document. Loading PDF annotation to ART will detach them from the PDF document and make them unavailable for PDF/A or PDF/X compliance validation.

The following example illustrates how a PDF document can be verified for compliance with one of the PDF standards.

C#
Copy Code
using ImageGear.Formats.PDF;

// Verification for compliance with PDF standards results.
enum CompliantResult
{
   // Document is not compliant and cannot be converted to given profile.
   CR_CANNOT_CONVERT,
   // Document is not compliant and can be converted to given profile.
   CR_CAN_BE_CONVERTED,
   // Document is compliant with given profile.
   CR_COMPLIANT
}

// Checks the document for compliance with standard.
CompliantResult IsPDFDocumentCompliantToProfile(ImGearPDFDocument igDocument, ImGearPDFPreflightProfile profile)
{
   ImGearPDFPreflightReport report;
   using(ImGearPDFPreflight preflight = new ImGearPDFPreflight((ImGearPDFDocument)igDocument))
   report = preflight.VerifyCompliance(profile, 0, -1);
   CompliantResult result;
   if (report.Code == ImGearPDFPreflightReportCodes.SUCCESS)
       result = CompliantResult.CR_COMPLIANT;
   else if (report.Status == ImGearPDFPreflightStatusCode.Fixable)
       result = CompliantResult.CR_CAN_BE_CONVERTED;
   else
       result = CompliantResult.CR_CANNOT_CONVERT;
   return result;
} 
VB.NET
Copy Code
Imports ImageGear.Formats.PDF

' Verification for compliance with PDF standards results.
Enum CompliantResult
            ' Document is not compliant and cannot be converted to given profile.
            CR_CANNOT_CONVERT
            ' Document is not compliant and can be converted to given profile.
            CR_CAN_BE_CONVERTED
            ' Document is compliant with given profile.
            CR_COMPLIANT
End Enum

' Checks the document for compliance with standard.
Private Function IsPDFDocumentCompliantToProfile(igDocument As ImGearPDFDocument, profile As ImGearPDFPreflightProfile) As CompliantResult
            Dim report As ImGearPDFPreflightReport
            Using preflight As New ImGearPDFPreflight(DirectCast(igDocument, ImGearPDFDocument))
                        report = preflight.VerifyCompliance(profile, 0, -1)
            End Using
            Dim result As CompliantResult
            If report.Code = ImGearPDFPreflightReportCodes.SUCCESS Then
                        result = CompliantResult.CR_COMPLIANT
            ElseIf report.Status = ImGearPDFPreflightStatusCode.Fixable Then
                        result = CompliantResult.CR_CAN_BE_CONVERTED
            Else
                        result = CompliantResult.CR_CANNOT_CONVERT
            End If
            Return result
End Function