Fonts Property

Applies to TestComplete 12.60, last modified on September 17, 2018
The Optical Character Recognition feature provided by the OCR plugin is deprecated. It was removed from TestComplete in version 12.60 and is no longer available for later versions.
Instead, TestComplete version 12.60 introduces the new Optical Character Recognition engine featuring Google Cloud Vision API. To learn more, see Optical Character Recognition.
If you need to use the legacy feature, please contact our Customer Care team.

Description

The OCROptions.Fonts property lets you get a FontCollection object to configure a custom collection of fonts and their attributes to be used during character recognition. To learn more about the role of fonts for character recognition in TestComplete, see Optical Character Recognition.

Declaration

OCROptionsObj.Fonts

Read-Only Property A FontCollection object
OCROptionsObj An expression, variable or parameter that specifies a reference to an OCROptions object

Applies To

The property is applied to the following object:

Property Value

A FontCollection object.

Example

The following example obtains information on the font that is currently used in Windows Notepad and adds the font to the font collection to be used during the character recognition. After that, it recognizes the text written in Windows Notepad and posts it to the test log.

JavaScript, JScript

function OCROptionsSample()
{
  // Obtains the Notepad window
  var notepad = Sys.Process("notepad");
  var Window = notepad.Window("Notepad", "*").Window("Edit");

  // Captures an image of the Notepad window
  var Rect = Window.Picture();
  Log.Picture(Rect, "Region with the text to be recognized");

  // Creates an OCR object
  var OCRObj = OCR.CreateObject(Rect);

  // Calls the Font dialog and obtains the font currently used in Notepad
  notepad.Window("Notepad", "*").MainMenu.Click("Format|Font...");
  var FWindow = notepad.Window("*", "Font");
  var FontName = FWindow.Window("ComboBox", "", 1).wText;
  var FontSize = aqConvert.VarToInt(FWindow.Window("ComboBox", "", 3).wText);
  Log.Message("The " + FontName + " " + aqConvert.IntToStr(FontSize) + " font is used");
  FWindow.Window("Button", "OK").ClickButton();

  // Creates an OCROptions object
  var OCROptions = OCRObj.CreateOptions();
  // Adds the font to the font collection to be used for the recognition
  NewFont = OCROptions.Fonts.Add();
  NewFont.Name = FontName;
  NewFont.Sizes.Add(FontSize);

  // Recognizes the text and posts it to the test log
  Log.Message("Recognized characters:", OCRObj.GetText(OCROptions));

}

Python

def OCROptionsSample():
  # Obtains the Notepad window
  notepad = Sys.Process("notepad")
  Window = notepad.Window("Notepad", "*").Window("Edit")
  # Captures an image of the Notepad window
  Rect = Window.Picture()
  Log.Picture(Rect, "Region with the text to be recognized")
  # Creates an OCR object
  OCRObj = OCR.CreateObject(Rect)
  # Calls the Font dialog and obtains the font currently used in Notepad
  notepad.Window("Notepad", "*").MainMenu.Click("Format|Font...")
  FWindow = notepad.Window("*", "Font")
  FontName = FWindow.Window("ComboBox", "", 1).wText
  FontSize = aqConvert.VarToInt(FWindow.Window("ComboBox", "", 3).wText)
  Log.Message("The " + FontName + " " + aqConvert.IntToStr(FontSize) + " font is used")
  FWindow.Window("Button", "OK").ClickButton()
  # Creates an OCROptions object
  OCROptions = OCRObj.CreateOptions()
  # Adds the font to the font collection to be used for the recognition
  NewFont = OCROptions.Fonts.Add()
  NewFont.Name = FontName
  NewFont.Sizes.Add(FontSize)
  # Recognizes the text and posts it to the test log
  Log.Message("Recognized characters:", OCRObj.GetText(OCROptions))

VBScript

Sub OCROptionsSample

  ' Obtains the Notepad window
  Set notepad = Sys.Process("notepad")
  Set Window = notepad.Window("Notepad", "*").Window("Edit")

  ' Captures an image of the Notepad window
  Set Rect = Window.Picture
  Call Log.Picture(Rect, "Region with the text to be recognized")

  ' Creates an OCR object
  Set OCRObj = OCR.CreateObject(Rect)

  ' Calls the Font dialog and obtains the font currently used in Notepad
  Call notepad.Window("Notepad", "*").MainMenu.Click("Format|Font...")
  Set FWindow = notepad.Window("*", "Font")
  FontName = FWindow.Window("ComboBox", "", 1).wText
  FontSize = aqConvert.VarToInt(FWindow.Window("ComboBox", "", 3).wText)
  Log.Message("The " & FontName & " " & aqConvert.IntToStr(FontSize) & " font is used")
  FWindow.Window("Button", "OK").ClickButton

  ' Creates an OCROptions object
  Set OCROptions = OCRObj.CreateOptions
  ' Adds the font to the font collection to be used for the recognition
  Set NewFont = OCROptions.Fonts.Add
  NewFont.Name = FontName
  NewFont.Sizes.Add(FontSize)

  ' Recognizes the text and posts it to the test log
  Call Log.Message("Recognized characters:", OCRObj.GetText(OCROptions))

End Sub

DelphiScript

function OCROptionsSample();
var
  notepad, Window, Rect, OCRObj, OCROptions, FWindow, NewFont: OleVariant;
  FontName: string;
  FontSize: integer;
begin
  // Obtains the Notepad window
  notepad := Sys.Process('notepad');
  Window := notepad.Window('Notepad', '*').Window('Edit');

  // Captures an image of the Notepad window
  Rect := Window.Picture;
  Log.Picture(Rect, 'Region with the text to be recognized');

  // Creates an OCR object
  OCRObj := OCR.CreateObject(Rect);

  // Calls the Font dialog and obtains the font currently used in Notepad
  notepad.Window('Notepad', '*').MainMenu.Click('Format|Font...');
  FWindow := notepad.Window('*', 'Font');
  FontName := FWindow.Window('ComboBox', '', 1).wText;
  FontSize := aqConvert.VarToInt(FWindow.Window('ComboBox', '', 3).wText);
  Log.Message('The ' + FontName + ' ' + aqConvert.IntToStr(FontSize) + ' font is used');
  FWindow.Window('Button', 'OK').ClickButton();

  // Creates an OCROptions object
  OCROptions := OCRObj.CreateOptions;
  // Adds the font to the font collection to be used for the recognition
  NewFont := OCROptions.Fonts.Add();
  NewFont.Name := FontName;
  NewFont.Sizes.Add(FontSize);

  // Recognizes the text and posts it to the test log
  Log.Message('Recognized characters:', OCRObj.GetText(OCROptions));

end;

C++Script, C#Script

function OCROptionsSample()
{
  // Obtains the Notepad window
  var notepad = Sys["Process"]("notepad");
  var Window = notepad["Window"]("Notepad", "*")["Window"]("Edit");

  // Captures an image of the Notepad window
  var Rect = Window["Picture"]();
  Log["Picture"](Rect, "Region with the text to be recognized");

  // Creates an OCR object
  var OCRObj = OCR["CreateObject"](Rect);

  // Calls the Font dialog and obtains the font currently used in Notepad
  notepad["Window"]("Notepad", "*")["MainMenu"]["Click"]("Format|Font...");
  var FWindow = notepad["Window"]("*", "Font");
  var FontName = FWindow["Window"]("ComboBox", "", 1)["wText"];
  var FontSize = aqConvert["VarToInt"](FWindow["Window"]("ComboBox", "", 3)["wText"]);
  Log["Message"]("The " + FontName + " " + aqConvert["IntToStr"](FontSize) + " font is used");
  FWindow["Window"]("Button", "OK")["ClickButton"]();

  // Creates an OCROptions object
  var OCROptions = OCRObj["CreateOptions"]();
  // Adds the font to the font collection to be used for the recognition
  NewFont = OCROptions["Fonts"]["Add"]();
  NewFont["Name"] = FontName;
  NewFont["Sizes"]["Add"](FontSize);

  // Recognizes the text and posts it to the test log
  Log["Message"]("Recognized characters:", OCRObj["GetText"](OCROptions));

}

See Also

Optical Character Recognition
FontCollection Object
Using Optical Character Recognition - Tips

Highlight search results