public OcrPageAutoPreprocessValues GetPreprocessValues()
An OcrPageAutoPreprocessValues containing the accumulative values of any inversion, rotation or deskew applied to this page by the preprocessor.
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.
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-skewedusing (var rasterImage = ocrEngine.RasterCodecsInstance.Load(originalFileName, 1)){// Rotate the image by 5 degrees to mimic deskewvar 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 optionvar pdfOptions = ocrEngine.DocumentWriterInstance.GetOptions(DocumentFormat.Pdf) as PdfDocumentOptions;pdfOptions.ImageOverText = true;ocrEngine.DocumentWriterInstance.SetOptions(DocumentFormat.Pdf, pdfOptions);// Create an OCR AutoRecognize jobvar 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 commandsautoRecognizeManager.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 pagevar values = e.Page.GetPreprocessValues();// Show the status of itConsole.WriteLine("Page:{0} IsInverted:{1} RotationAngle:{2} DeskewAngle{3}", e.ImagePageNumber, values.IsInverted, values.RotationAngle, values.DeskewAngle);// Load the original image from diskvar overlayImage = e.Document.RasterCodecsInstance.Load(e.Job.JobData.ImageFileName, e.ImagePageNumber);// Apply to the imageif (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";}