OCR 2017

Set all PDF and OCR options

' Copyright (c) 2021 ActivePDF, Inc.
' ActivePDF OCR 2017
' Example generated 03/06/21 

Imports System

' Make sure to add the ActivePDF product .NET DLL(s) to your application.
' .NET DLL(s) are typically found in the products 'bin' folder.
Imports OCRData.Enums.ImageProcessing
Imports OCRData.Enums.OCR
Imports OCRData.Enums.PDF
Imports ConverterKit.DK.Enums.PDF

Public Class Examples
  Sub Example()
    Dim strPath As String, results As OCRDK.Results.OCRResult

    strPath = AppDomain.CurrentDomain.BaseDirectory

    ' Instantiate Object
    Dim oOCR As APOCR.Net45.OCR = New APOCR.Net45.OCR()
    
    ' OCR Settings
    oOCR.Settings.OCR.Deskew = DeskewOptions.Auto2D
    oOCR.Settings.OCR.Despeckled = true
    oOCR.Settings.OCR.ExportBookmarks = false
    oOCR.Settings.OCR.OCRType = OCRTypeOptions.SearchablePDF
    oOCR.Settings.OCR.PictureHandling = PictureHandlingOptions.Default
    oOCR.Settings.OCR.RetainLineNumbering = false
    oOCR.Settings.OCR.Rotation = RotationOptions.Auto
    oOCR.Settings.OCR.Languages.Add(LanguageOptions.English)
    
    ' PDF Compression
    oOCR.Settings.PDF.Compression.TextAndLineArt = false
    oOCR.Settings.PDF.Compression.ContentStream = ContentStreamOptions.Flate
    oOCR.Settings.PDF.Compression.EmbeddedFonts = false
    oOCR.Settings.PDF.Compression.BWImages = false
    oOCR.Settings.PDF.Compression.ColorAndGrayImages = false
    oOCR.Settings.PDF.Compression.MRC = MRCOptions.Disabled
    
    ' PDF Metadata
    oOCR.Settings.PDF.Metadata.Author = "John Doe"
    oOCR.Settings.PDF.Metadata.Title = "OCR Example"
    oOCR.Settings.PDF.Metadata.Subject = "Example"
    oOCR.Settings.PDF.Metadata.Keywords = "OCR, example, metadata"
    
    ' PDF Security
    oOCR.Settings.PDF.Security.UseSecurity = false
    oOCR.Settings.PDF.Security.Encryption = EncryptionType.AES_256
    oOCR.Settings.PDF.Security.OwnerPassword = "ownerPassword"
    oOCR.Settings.PDF.Security.UserPassword = "userPassword"
    oOCR.Settings.PDF.Security.CanAnnotate = false
    oOCR.Settings.PDF.Security.CanAssemble = false
    oOCR.Settings.PDF.Security.CanCopy = false
    oOCR.Settings.PDF.Security.CanEdit = false
    oOCR.Settings.PDF.Security.CanFillInFormFields = false
    oOCR.Settings.PDF.Security.CanMakeAccessible = false
    oOCR.Settings.PDF.Security.CanPrint = false
    oOCR.Settings.PDF.Security.CanPrintHiResolution = false
    
    ' PDF version
    oOCR.Settings.PDF.Version = PDFVersion.PDF1_5
    oOCR.Settings.PDF.Format = PDFOutputFormat.PDF
    oOCR.Settings.PDF.PDFACompliance = PDFAComplianceLevel.NotSet
    
    ' Basic Settings
    oOCR.Settings.Debug = true
    oOCR.Settings.Timeout = 30
    oOCR.Settings.PDF.Linearize = false
    oOCR.Settings.PDF.OverwriteMethod = OverwriteMethod.Always
    
    ' Start OCR conversion
    results = oOCR.Convert(strPath & "multipage.tif", strPath & "new.pdf")
    If results.OCRStatus <> OCRDK.Results.OCRStatus.Success Then
      ErrorHandler("Convert", results, results.OCRStatus.ToString())
    End If
    
    ' Release Object
    oOCR = Nothing
    
    ' Process Complete
    WriteResults("Done!")
  End Sub
  
  ' Error Handling
  Sub ErrorHandler(ByVal strMethod As String, ByVal results As ADK.Results.Result, ByVal errorStatus As String)
    WriteResults("Error with " + strMethod)
    WriteResults(errorStatus)
    WriteResults(results.Details)
    If results.Origin.Function <> strMethod Then
      WriteResults(results.Origin.Class + "." + results.Origin.Function)
    End If
    If Not results.ResultException Is Nothing Then
      ' To view the stack trace on an exception uncomment the line below
      'WriteResults(results.ResultException.StackTrace)
    End If
    Environment.Exit(1)
  End Sub
  
  ' Write output data
  Sub WriteResults(content As String)
    ' Choose where to write out results
  
    ' Debug output
    'System.Diagnostics.Debug.WriteLine("ActivePDF: * " + content)
  
    ' Console
    Console.WriteLine(content)
  
    ' Log file
    'Using tw = New System.IO.StreamWriter(AppDomain.CurrentDomain.BaseDirectory & "application.log", True)
    '   tw.WriteLine("[" + DateTime.Now.ToString("MM/dd/yyyy HH:mm:ss") + "]: => " + content)
    'End Using
  End Sub
End Class

Copyright © 2021 ActivePDF, Inc