ImageGear for .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:
- Fixable – reports incompliance that can be fixed by the automated PDF Converter.
- Unfixable – reports incompliance that cannot be fixed by the automated PDF Converter. Such incompliance should be fixed using the ImageGear PDF editing API.
 |
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 |