←Select platform

GetPreprocessValues Method

Summary
Gets the accumulative values of any inversion, rotation or deskew applied to this page by the preprocessor.
Syntax
C#
Objective-C
C++/CLI
Java
Python
public OcrPageAutoPreprocessValues GetPreprocessValues() 
- (nullable LTOcrPageAutoPreprocessValues *)preprocessValues:(NSError **)error; 
public OcrPageAutoPreprocessValues getPreprocessValues() 
OcrPageAutoPreprocessValues GetPreprocessValues();  
def GetPreprocessValues(self): 

Return Value

An OcrPageAutoPreprocessValues containing the accumulative values of any inversion, rotation or deskew applied to this page by the preprocessor.

Remarks

Use this method to obtain the values applied by AutoPreprocess on this page. This method is useful when replacing the image to be used when saving a document using SetOverlayImage.

Example
C#
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.Ocr; 
using Leadtools.Forms.Common; 
using Leadtools.Document.Writer; 
using Leadtools.WinForms; 
using Leadtools.Drawing; 
using Leadtools.ImageProcessing; 
using Leadtools.ImageProcessing.Color; 
 
public static void SetOverlayImageExample() 
{ 
   var originalFileName = Path.Combine(LEAD_VARS.ImagesDir, "Ocr1.tif"); 
   var imageFileName = Path.Combine(LEAD_VARS.ImagesDir, "Ocr1_Deskewed.tif"); 
   var outFileName = Path.Combine(LEAD_VARS.ImagesDir, "result.pdf"); 
 
   using (var ocrEngine = OcrEngineManager.CreateEngine(OcrEngineType.LEAD)) 
   { 
      ocrEngine.Startup(null, null, null, LEAD_VARS.OcrLEADRuntimeDir); 
 
      // Mimic having an image that is de-skewed 
      using (var rasterImage = ocrEngine.RasterCodecsInstance.Load(originalFileName, 1)) 
      { 
         // Rotate the image by 5 degrees to mimic deskew 
         var rotateCommand = new RotateCommand(5 * 100, RotateCommandFlags.None, RasterColor.FromKnownColor(RasterKnownColor.White)); 
         rotateCommand.Run(rasterImage); 
         ocrEngine.RasterCodecsInstance.Save(rasterImage, imageFileName, RasterImageFormat.CcittGroup4, 1); 
      } 
 
      // Now we are ready. We will create a PDF for the result with image over text overlay. And we will intercept creating 
      // the overlay and use the original image instead 
 
      // Use PDF with image/text option 
      var pdfOptions = ocrEngine.DocumentWriterInstance.GetOptions(DocumentFormat.Pdf) as PdfDocumentOptions; 
      pdfOptions.ImageOverText = true; 
      ocrEngine.DocumentWriterInstance.SetOptions(DocumentFormat.Pdf, pdfOptions); 
 
      // Create an OCR AutoRecognize job 
      var jobData = new OcrAutoRecognizeJobData 
      { 
         ImageFileName = imageFileName, 
         FirstPageNumber = 1, 
         LastPageNumber = -1, 
         DocumentFileName = outFileName, 
         Format = DocumentFormat.Pdf 
      }; 
 
      var autoRecognizeManager = ocrEngine.AutoRecognizeManager; 
      var job = autoRecognizeManager.CreateJob(jobData); 
 
      // Setup pre-processing commands 
      autoRecognizeManager.EnableTrace = true; 
      autoRecognizeManager.PreprocessPageCommands.Clear(); 
      autoRecognizeManager.PreprocessPageCommands.Add(OcrAutoPreprocessPageCommand.All); 
      OcrAutoRecognizeManagerJobStatus status; 
 
      EventHandler<OcrAutoRecognizeJobOperationEventArgs> jobOperation = (sender, e) => 
      { 
         if (e.Operation == OcrAutoRecognizeManagerJobOperation.SavePage) 
         { 
            if (!e.PostOperation) 
            { 
               // Get the pre-processing values for the page 
               var values = e.Page.GetPreprocessValues(); 
               // Show the status of it 
               Console.WriteLine("Page:{0} IsInverted:{1} RotationAngle:{2} DeskewAngle{3}", e.ImagePageNumber, values.IsInverted, values.RotationAngle, values.DeskewAngle); 
 
               // Load the original image from disk 
               var overlayImage = e.Document.RasterCodecsInstance.Load(e.Job.JobData.ImageFileName, e.ImagePageNumber); 
 
               // Apply to the image 
               if (values.RotationAngle != 0) 
                  new RotateCommand(values.RotationAngle, RotateCommandFlags.None, RasterColor.FromKnownColor(RasterKnownColor.White)).Run(overlayImage); 
               if (values.IsInverted) 
                  new InvertCommand().Run(overlayImage); 
 
               e.Page.SetOverlayImage(overlayImage); 
            } 
         } 
      }; 
 
      autoRecognizeManager.JobOperation += jobOperation; 
 
      try 
      { 
         status = autoRecognizeManager.RunJob(job); 
      } 
      finally 
      { 
         autoRecognizeManager.JobOperation -= jobOperation; 
      } 
 
      Console.WriteLine(status); 
   } 
} 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images"; 
   public const string OcrLEADRuntimeDir = @"C:\LEADTOOLS23\Bin\Common\OcrLEADRuntime"; 
} 
Requirements

Target Platforms

Help Version 23.0.2024.4.19
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2024 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.Ocr Assembly
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.