Using an OcrTransformer to add a Searchable Text Layer

The code below shows you how to use an OcrTransformer to add a searchable text layer to a PDF.

This sample requires a Professional+OCR license.

C#
using System;
using System.IO;
using SolidFramework.Converters.Plumbing;
using SolidFramework.Plumbing;
using SolidFramework.Pdf;
using SolidFramework.Pdf.Transformers;

namespace PDFTransformers
{
    class Program
    {
        [STAThread]
        static void Main(string[] args)
        {
            // Call your Solid Documents License
            SolidFramework.License.Import(@"C:\MyFolder\license.xml");

            // Set the location of your the file you want to convert
            String pdfPath = @"C:\YourFolder\yourpdf.pdf";

            String searchablePdfPath = Path.ChangeExtension(pdfPath, "searchable.pdf");

            //*PDF Transformer*//

            // Create a new PdfDocument Object called document and assign the selected PDF file to it 
            using (PdfDocument document = new PdfDocument(pdfPath))
            {                
                // Create a new OCRTransformer Object 
                OcrTransformer transformer = new OcrTransformer();

                // Set the OcrType to Create a Searchable TextLayer 
                transformer.OcrType = OcrType.CreateSearchableTextLayer;

                // Set the OCR Language to the Language in your PDF File - "en" for English, "es" for Spanish etc. 
                transformer.OcrLanguage = "en";

                // Preserve the Original PDF Files Image Compression 
                transformer.OcrImageCompression = SolidFramework.Imaging.Plumbing.ImageCompression.PreserveOriginal;

                // Add the user selected PDF file to your transformer 
                transformer.AddDocument(document);

                // Transform the PDF File 
                transformer.Transform();

                // Save the new Searchable PDF file to the extension you specified earlier 
                document.SaveAs(searchablePdfPath, OverwriteMode.ForceOverwrite);
            }
        }
    }
}

C++

This sample is not currently available in C++.

VB.Net
Imports System.IO
Imports SolidFramework.Converters.Plumbing
Imports SolidFramework.Plumbing
Imports SolidFramework
Imports SolidFramework.Pdf

Module PDFTransformers

    Sub Main()

        ' Call your Solid Documents License
        SolidFramework.License.Import("C:\MyFolder\license.xml")

        'Define a variable for your source file
        Dim sPdfPath As String

        ' Define a String for the output file
        Dim searchPath As String

        ' Define a PDF Document object
        Dim myDocument As SolidFramework.Pdf.PdfDocument

        ' Define your Solid Framework Converter
        Dim myConverter As SolidFramework.Pdf.Transformers.OcrTransformer

        ' Set your file path 
        sPdfPath = "C:\YourFolder\filepdf.pdf"

        myDocument = New PdfDocument(sPdfPath)

        ' Set your output file and location
        searchPath = Path.ChangeExtension(sPdfPath, ".searchable.pdf")

        ' Set the converter
        myConverter = New SolidFramework.Pdf.Transformers.OcrTransformer

        ' Set the OcrType to Create a Searchable TextLayer 
        myConverter.OcrType = OcrType.CreateSearchableTextLayer

        ' Set the OCR Language to the Language in your PDF File - "en" for English, "es" for Spanish etc. 
        myConverter.OcrLanguage = "de"

        ' Preserve the Original PDF Files Image Compression 
        myConverter.OcrImageCompression = Imaging.Plumbing.ImageCompression.PreserveOriginal

        ' Add the user selected PDF file to your transformer 
        myConverter.AddDocument(myDocument)

        ' Transform the PDF File 
        myConverter.Transform()

        ' Save the new Searchable PDF file to the extension you specified earlier 
        myDocument.SaveAs(searchPath, OverwriteMode.ForceOverwrite)

        ' Close the document and clean up
        myDocument.Close()
        myDocument.Dispose()

    End Sub

End Module