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:
- 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 |