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