VintaSoft Imaging .NET SDK v8.7
In This Topic
    PDF: Verify PDF document
    In This Topic

    The SDK allows to verify that PDF document conforms the following PDF specifications:


    Here is an example that demonstrates how to verify a PDF document to conformance with PDF/A-1b specification:
    ' The project, which uses this code, must have references to the following assemblies:
    ' - Vintasoft.Imaging.Pdf
    
    ''' <summary>
    ''' Verifies a PDF document to conformance with PDF/A-1b specification.
    ''' </summary>
    ''' <param name="pdfFilename">The filename of PDF document.</param>
    Public Shared Sub VerifyDocumentToPdfA1b(pdfFilename As String)
            Dim verifier As New Vintasoft.Imaging.Pdf.Processing.PdfA.PdfA1bVerifier()
            System.Console.WriteLine("Verification...")
            If verifier.Verify(pdfFilename) Then
                    System.Console.WriteLine("Document conforms to PDF/A-1b.")
            Else
                    System.Console.WriteLine("Document does not conform to PDF/A-1b.")
            End If
    End Sub
                  
    
    // The project, which uses this code, must have references to the following assemblies:
    // - Vintasoft.Imaging.Pdf
    
    /// <summary>
    /// Verifies a PDF document to conformance with PDF/A-1b specification.
    /// </summary>
    /// <param name="pdfFilename">The filename of PDF document.</param>
    public static void VerifyDocumentToPdfA1b(string pdfFilename)
    {
        Vintasoft.Imaging.Pdf.Processing.PdfA.PdfA1bVerifier verifier = 
            new Vintasoft.Imaging.Pdf.Processing.PdfA.PdfA1bVerifier();
        System.Console.WriteLine("Verification...");
        if (verifier.Verify(pdfFilename))
            System.Console.WriteLine("Document conforms to PDF/A-1b.");
        else
            System.Console.WriteLine("Document does not conform to PDF/A-1b.");
    }
                    
    

    Here is an example that demonstrates how to verify a PDF document to conformance with PDF/A-1b specification and show the detailed result of verification:
    ' The project, which uses this code, must have references to the following assemblies:
    ' - Vintasoft.Imaging
    ' - Vintasoft.Imaging.Pdf
    
    ''' <summary>
    ''' Verifies a PDF document to conformance with PDF/A-1b specification and
    ''' shows the detailed result of verification.
    ''' </summary>
    ''' <param name="pdfFilename">The filename of PDF document.</param>
    Public Shared Sub VerifyDocumentToPdfA1bDetailed(pdfFilename As String)
            Dim verifier As New Vintasoft.Imaging.Pdf.Processing.PdfA.PdfA1bVerifier()
            Using processingState As New Vintasoft.Imaging.Processing.ProcessingState()
                    ' subscribe to the events for monitoring the progress and activated important triggers
                    AddHandler processingState.Progress, New System.EventHandler(Of Vintasoft.Imaging.ProgressEventArgs)(AddressOf verifyProcessingState_Progress)
                    AddHandler processingState.TriggerActivated, New System.EventHandler(Of Vintasoft.Imaging.Processing.TriggerActivatedEventArgs)(AddressOf verifyProcessingState_TriggerActivated)
                    ' clear the count of important trigger activations
                    _verifyActivatedTriggerCount = 0
    
                    ' execute the verification
                    Dim result As Vintasoft.Imaging.Processing.VerificationProfileResult = verifier.Verify(pdfFilename, processingState)
    
                    ' output the verification result
    
                    System.Console.WriteLine("finished.")
                    If result.IsPassed Then
                            System.Console.WriteLine("Document conforms to PDF/A-1b.")
                    Else
                            System.Console.WriteLine("Document does not conform to PDF/A-1b:")
                            ' for each activated trigger
                            For Each command As Vintasoft.Imaging.Processing.IProcessingCommandInfo In result.ActivatedTriggers.Keys
                                    ' output information about activated trigger
                                    System.Console.WriteLine(String.Format("  {0} ({1} matches)", command, result.ActivatedTriggers(command).Count))
    
                            Next
                    End If
            End Using
    End Sub
    
    ''' <summary>
    ''' The count of trigger activations.
    ''' </summary>
    Shared _verifyActivatedTriggerCount As Integer
    
    ''' <summary>
    ''' Handles the TriggerActivated event of the ProcessingState.
    ''' </summary>
    Private Shared Sub verifyProcessingState_TriggerActivated(sender As Object, e As Vintasoft.Imaging.Processing.TriggerActivatedEventArgs)
            If e.ActivationResult.Severity = Vintasoft.Imaging.Processing.TriggerSeverity.Important Then
                    _verifyActivatedTriggerCount += 1
            End If
    End Sub
    
    ''' <summary>
    ''' Handles the Progress event of the ProcessingState.
    ''' </summary>
    Private Shared Sub verifyProcessingState_Progress(sender As Object, e As Vintasoft.Imaging.ProgressEventArgs)
            System.Console.CursorLeft = 0
            If _verifyActivatedTriggerCount > 0 Then
                    System.Console.Write(String.Format("Verification {0}%: {1} errors...", e.Progress, _verifyActivatedTriggerCount))
            Else
                    System.Console.Write(String.Format("Verification {0}%...", e.Progress))
            End If
    End Sub
                  
    
    // The project, which uses this code, must have references to the following assemblies:
    // - Vintasoft.Imaging
    // - Vintasoft.Imaging.Pdf
    
    /// <summary>
    /// Verifies a PDF document to conformance with PDF/A-1b specification and
    /// shows the detailed result of verification.
    /// </summary>
    /// <param name="pdfFilename">The filename of PDF document.</param>
    public static void VerifyDocumentToPdfA1bDetailed(string pdfFilename)
    {
        Vintasoft.Imaging.Pdf.Processing.PdfA.PdfA1bVerifier verifier = 
            new Vintasoft.Imaging.Pdf.Processing.PdfA.PdfA1bVerifier();
        using (Vintasoft.Imaging.Processing.ProcessingState processingState = 
            new Vintasoft.Imaging.Processing.ProcessingState())
        {
            // subscribe to the events for monitoring the progress and activated important triggers
            processingState.Progress += 
                new System.EventHandler<Vintasoft.Imaging.ProgressEventArgs>(
                    verifyProcessingState_Progress);
            processingState.TriggerActivated += 
                new System.EventHandler<Vintasoft.Imaging.Processing.TriggerActivatedEventArgs>(
                    verifyProcessingState_TriggerActivated);
            // clear the count of important trigger activations
            _verifyActivatedTriggerCount = 0;
    
            // execute the verification
            Vintasoft.Imaging.Processing.VerificationProfileResult result =
                verifier.Verify(pdfFilename, processingState);
    
            // output the verification result
    
            System.Console.WriteLine("finished.");
            if (result.IsPassed)
            {
                System.Console.WriteLine("Document conforms to PDF/A-1b.");
            }
            else
            {
                System.Console.WriteLine("Document does not conform to PDF/A-1b:");
                // for each activated trigger
                foreach (Vintasoft.Imaging.Processing.IProcessingCommandInfo 
                    command in result.ActivatedTriggers.Keys)
                {
                    // output information about activated trigger
                    System.Console.WriteLine(string.Format("  {0} ({1} matches)",
                        command,
                        result.ActivatedTriggers[command].Count));
                }
    
            }
        }
    }
    
    /// <summary>
    /// The count of trigger activations.
    /// </summary>
    static int _verifyActivatedTriggerCount;
    
    /// <summary>
    /// Handles the TriggerActivated event of the ProcessingState.
    /// </summary>
    static void verifyProcessingState_TriggerActivated(
        object sender,
        Vintasoft.Imaging.Processing.TriggerActivatedEventArgs e)
    {
        if (e.ActivationResult.Severity == Vintasoft.Imaging.Processing.TriggerSeverity.Important)
            _verifyActivatedTriggerCount++;
    }
    
    /// <summary>
    /// Handles the Progress event of the ProcessingState.
    /// </summary>
    static void verifyProcessingState_Progress(object sender, Vintasoft.Imaging.ProgressEventArgs e)
    {
        System.Console.CursorLeft = 0;
        if (_verifyActivatedTriggerCount > 0)
            System.Console.Write(string.Format("Verification {0}%: {1} errors...", e.Progress, _verifyActivatedTriggerCount));
        else
            System.Console.Write(string.Format("Verification {0}%...", e.Progress));
    }