ConvertDocument(PdfDocumentConformance,ProcessingState) Method (PdfDocument) 
 
            
                In This Topic
            
            Converts a PDF document to the conformance with the specified format.
            
            
Syntax
            
	Parameters
- documentConformance
 
- The PDF document conformance.
 
- processingState
 
- State of conversion process.
 
Return Value
The result of conversion.
         
Exceptions
Remarks
The method supports only the following formats: PDF/A-1b, PDF/A-2b, PDF/A-3b, PDF/A-1a, PDF/A-2a, PDF/A-3a, PDF/A-2u, PDF/A-3u, PDF/A-4, PDF/A-4e, PDF/A-4f.
 
 PdfA1bConverter, PdfA2bConverter , PdfA3bConverter or PdfA4Converter classes can be used if PDF document must be converted with custom settings (ICC profiles, compressions, etc).
 
Example
Here is an example that shows how to convert a PDF document to conformance with PDF/A-1b specification and show the detailed result of verification:
    
	
	    
	    
''' <summary>
''' Converts a PDF document to conformance with PDF/A-1b specification and
''' shows the detailed result of verification.
''' </summary>
''' <param name="pdfFilename">The filename of source PDF document.</param>
''' <param name="outputPdfFilename">The filename of output PDF document.</param>
Public Shared Sub ConvertDocumentToPdfA1bDetailed(pdfFilename As String, outputPdfFilename As String)
    ' determine that file must converted to the PDF/A-1b and saved back to the source file
    Dim sameFile As Boolean = pdfFilename.ToUpperInvariant() = outputPdfFilename.ToUpperInvariant()
    ' if converted PDF document must NOT be saved to the source file
    If Not sameFile Then
        ' copy the source file to the output file
        System.IO.File.Copy(pdfFilename, outputPdfFilename, True)
    End If
    ' open PDF document
    Using document As New Vintasoft.Imaging.Pdf.PdfDocument(outputPdfFilename)
        Using processingState As New Vintasoft.Imaging.Processing.ProcessingState()
            ' subscribe to the events for monitoring the progress
            AddHandler processingState.Progress, New System.EventHandler(Of Vintasoft.Imaging.ProgressEventArgs)(AddressOf convertProcessingState_Progress)
            ' execute the conversion
            Dim result As Vintasoft.Imaging.Processing.ConversionProfileResult = document.ConvertDocument(Vintasoft.Imaging.Pdf.PdfDocumentConformance.PdfA_1b, processingState)
            System.Console.WriteLine("finished.")
            ' if PDF document is converted successfully
            If result.IsSuccessful Then
                System.Console.WriteLine("Document converted to PDF/A-1b.")
            Else
                ' if PDF document is NOT converted
                If Not sameFile Then
                    System.IO.File.Delete(outputPdfFilename)
                End If
                System.Console.WriteLine("Cannot convert document to PDF/A-1b, unsolved problems:")
                ' 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 Using
End Sub
''' <summary>
''' Handles the Progress event of the ProcessingState.
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
Private Shared Sub convertProcessingState_Progress(sender As Object, e As Vintasoft.Imaging.ProgressEventArgs)
    System.Console.CursorLeft = 0
    System.Console.Write(String.Format("Conversion {0}%...", e.Progress))
End Sub
	     
	 
 
    
	
	    
	    
/// <summary>
/// Converts a PDF document to conformance with PDF/A-1b specification and
/// shows the detailed result of verification.
/// </summary>
/// <param name="pdfFilename">The filename of source PDF document.</param>
/// <param name="outputPdfFilename">The filename of output PDF document.</param>
public static void ConvertDocumentToPdfA1bDetailed(
    string pdfFilename,
    string outputPdfFilename)
{
    // determine that file must converted to the PDF/A-1b and saved back to the source file
    bool sameFile = pdfFilename.ToUpperInvariant() == outputPdfFilename.ToUpperInvariant();
    // if converted PDF document must NOT be saved to the source file
    if (!sameFile)
        // copy the source file to the output file
        System.IO.File.Copy(pdfFilename, outputPdfFilename, true);
    // open PDF document
    using (Vintasoft.Imaging.Pdf.PdfDocument document = 
        new Vintasoft.Imaging.Pdf.PdfDocument(outputPdfFilename))
    {
        using (Vintasoft.Imaging.Processing.ProcessingState processingState = 
            new Vintasoft.Imaging.Processing.ProcessingState())
        {
            // subscribe to the events for monitoring the progress
            processingState.Progress += new System.EventHandler<Vintasoft.Imaging.ProgressEventArgs>(
                convertProcessingState_Progress);
            // execute the conversion
            Vintasoft.Imaging.Processing.ConversionProfileResult result =
                document.ConvertDocument(Vintasoft.Imaging.Pdf.PdfDocumentConformance.PdfA_1b, processingState);
            System.Console.WriteLine("finished.");
            // if PDF document is converted successfully
            if (result.IsSuccessful)
            {
                System.Console.WriteLine("Document converted to PDF/A-1b.");
            }
            // if PDF document is NOT converted
            else
            {
                if (!sameFile)
                    System.IO.File.Delete(outputPdfFilename);
                System.Console.WriteLine("Cannot convert document to PDF/A-1b, unsolved problems:");
                // 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>
/// Handles the Progress event of the ProcessingState.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
static void convertProcessingState_Progress(object sender, Vintasoft.Imaging.ProgressEventArgs e)
{
    System.Console.CursorLeft = 0;
    System.Console.Write(string.Format("Conversion {0}%...", e.Progress));
}
	     
	 
 
 
Requirements
Target Platforms: .NET9; .NET 8; .NET 7; .NET 6; .NET Framework 4.8, 4.7, 4.6, 4.5, 4.0, 3.5
 
See Also