LEADTOOLS OCR(Leadtools.Forms.Ocrアセンブリ)

フレームを表示

GetFontNameメソッド








言語名。詳細な情報のための意見を参照してください。
取得するフォントの型。
最終的なドキュメントで使われるフォントの特定の型を取得します。
構文
'Declaration
 
Function GetFontName( _
   ByVal languageName As String, _
   ByVal fontType As OcrDocumentFontType _
) As String
'Usage
 
Dim instance As IOcrDocumentManager
Dim languageName As String
Dim fontType As OcrDocumentFontType
Dim value As String
 
value = instance.GetFontName(languageName, fontType)
- (nullable NSString *)fontNameForLanguage:(LTOcrLanguage)language 
                                  fontType:(LTOcrDocumentFontType)fontType
                                     error:(NSError **)error
            
public String getFontName(String languageName, OcrDocumentFontType fontType)
            
function Leadtools.Forms.Ocr.IOcrDocumentManager.GetFontName( 
   languageName ,
   fontType 
)

パラメーター

languageName
言語名。詳細な情報のための意見を参照してください。
フォントタイプ
取得するフォントの型。

戻り値

フォント名。
解説

配列を用いてフォント名を取得または設定するために、GetFontNamesSetFontNamesを使うこともできます。

最終的な認められたドキュメント(PDF、DOC、HTMLその他)で使われるフォントを取得して/設定するために、GetFontNameSetFontNameを使います。最終的な文書形式がテキストであるとき、フォントが使われません。

OCRエンジンは、以下のように最終アウトプットドキュメントを作成するとき、6つの様々なフォントを使います:説明:

OcrDocumentFontType 説明
OcrDocumentFontType.ProportionalSerif プロポーショナルセリフ文字で使用するフォント。
OcrDocumentFontType.ProportionalSansSerif プロポーショナルサンセリフ体文字で使用するフォント。
OcrDocumentFontType.FixedSerif 等幅セリフ文字で使用するフォント。
OcrDocumentFontType.FixedSansSerif 等幅サンセリフ体文字で使用するフォント。
OcrDocumentFontType.MICR MICR(チェックフォント)文字で使用するフォント。

IOcrPage.GetRecognizedCharactersで返される各文字のOcrCharacter.FontStyleメンバによって、各文字で使用されるフォントが決まります。ゾーンがICRまたはMICRであるならば、(OcrZone.ZoneTypeメンバはOcrZoneType.Icrです、または、文字がそうするOcrZoneType.Micrthenはそれに応じてICRまたはMICRフォントを使います。

OCRエンジンはいくらかの言語のためにフォントのリストを保持します、たとえば、すべてのラテンの言語は同じフォントを現時点では使います。そのため、languageNameに"en"(英語)や"de"(ドイツ語)を渡すと、最終文書で使用されるデフォルトのラテンフォントが変わります。これは、null(Visual BasicではNothing)を渡すこと相当です。

OCRエンジンがアジアの言語をサポートするならば、各々の言語はそれ自身のフォントセットを持っています、そして、個々にこれらのフォントを取得することができて/設定することができます。現時点では、LEADTOOLSはラテン語(null)、日本語(ja)、韓国語(ko)、中国語(zh-ハンスとzh-お化け)と韓国語(ko)のためのツールキットサポート個人フォントのOCR処理を行います。以下のテーブルは、言語ごとに使われるデフォルトのフォントをリストします:

言語 フォント
nullへのlanguageName同等を含むラテン語(他の全ての言語)
フォント
プロポーショナルセリフ タイムズ新しいローマン
プロポーショナルサンセリフ体 Arial
等幅セリフ 新しいメッセンジャー
等幅サンセリフ体 Arial
ICR 出版業者オールドスタイル
MICR ArialユニコードMS
日本語(languageNameは「ja」)
フォント
プロポーショナルセリフ MS PMincho
プロポーショナルサンセリフ体 MS PGothic
等幅セリフ MSゴシック体
等幅サンセリフ体 SimSun
ICR MSゴシック体
MICR SimSun
中国語(languageName= "zh-Hans"または"zh-Hant")
フォント
プロポーショナルセリフ SimSun
プロポーショナルサンセリフ体 SimHei
等幅セリフ ねえ簡略化された
等幅サンセリフ体 SimSun
ICR ねえ簡略化された
MICR SimSun
韓国語(「ko」へのlanguageName同等)
フォント
プロポーショナルセリフ Gungsuh
プロポーショナルサンセリフ体 Gulim
等幅セリフ Dotum
等幅サンセリフ体 Gungsuh
ICR Dotum
MICR Gungsuh

フォントを変更することはほとんどの場合、推奨されません。ユーザーが認識処理の前にフォントを変更した場合でも、文字の位置とサイズはデフォルトフォントに基づいて計算されます。フォントを変更した後に、最終アウトプットドキュメントを作成するために文字位置とフォントサイズをさらに変更するためにIOcrPage.GetRecognizedCharactersIOcrPage.SetRecognizedCharactersを使うために必要かもしれません。

サンプル
Copy Code  
Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.Forms.Ocr
Imports Leadtools.Forms
Imports Leadtools.Forms.DocumentWriters
Imports Leadtools.WinForms

<TestMethod>
Public Sub DocumentFontsTest()
   Using codecs As New RasterCodecs()
      Using ocrEngine As IOcrEngine = OcrEngineManager.CreateEngine(OcrEngineType.Advantage, False)
         ocrEngine.Startup(codecs, Nothing, Nothing, LEAD_VARS.OcrAdvantageRuntimeDir)
         Dim ocrDocumentManager As IOcrDocumentManager = ocrEngine.DocumentManager

         Using ocrDocument As IOcrDocument = ocrEngine.DocumentManager.CreateDocument()
            ' Add a page to OCR
            Dim ocrPage As IOcrPage = ocrDocument.Pages.AddPage(Path.Combine(LEAD_VARS.ImagesDir, "Ocr1.tif"), Nothing)

            ocrPage.AutoZone(Nothing)
            ocrPage.Recognize(Nothing)

            ' Show the current fonts used to save default documents
            Console.WriteLine("Saving use the following fonts:")
            ShowFonts(ocrDocumentManager)
            ocrDocument.Save(Path.Combine(LEAD_VARS.ImagesDir, "Ocr1_DefaultFonts.pdf"), DocumentFormat.Pdf, Nothing)

            ' Now change the fonts to something else
            Dim newFonts As String() = ocrDocumentManager.GetFontNames(Nothing)

            ' Use Cambira for Proportional Serif font - instead of Times New Roman
            newFonts(0) = "Cambria"
            ' Use Calibri for Proportional Sans-serif font - instead of Arial
            newFonts(1) = "Calibri"
            ' Use Lucida Console for Monospace fonts (both Serif and Sans-serif)
            newFonts(2) = "Lucida Console"
            newFonts(3) = "Lucida Console"
            ' Leave the ICR and MICR fonts the same

            ocrDocumentManager.SetFontNames(Nothing, newFonts)

            ' Show the new fonts used to save default documents
            Console.WriteLine("Saving use the following fonts:")
            ShowFonts(ocrDocumentManager)
            ocrDocument.Save(Path.Combine(LEAD_VARS.ImagesDir, "Ocr1_CustomFonts.pdf"), DocumentFormat.Pdf, Nothing)
         End Using
      End Using
   End Using
End Sub

Private Shared Sub ShowFonts(ocrDocumentManager As IOcrDocumentManager)
   ' Get the default fonts
   ' The default fonts will be used for all Latin languages
   Dim fonts As String() = ocrDocumentManager.GetFontNames(Nothing)

   ' This should return an array of 6 items, as follows:
   Console.WriteLine("Proportional Serif font:        " & fonts(0))
   Console.WriteLine("Proportional Sans-serif font:   " & fonts(1))
   Console.WriteLine("Monospace Serif font:           " & fonts(2))
   Console.WriteLine("Monospace Sans-serif font:      " & fonts(3))
   Console.WriteLine("ICR (hand-written) font:        " & fonts(4))
   Console.WriteLine("MICR (Check) font:              " & fonts(5))
End Sub

Public NotInheritable Class LEAD_VARS
Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images"
Public Const OcrAdvantageRuntimeDir As String = "C:\LEADTOOLS 19\Bin\Common\OcrAdvantageRuntime"
End Class
using Leadtools;
using Leadtools.Codecs;
using Leadtools.Forms.Ocr;
using Leadtools.Forms;
using Leadtools.Forms.DocumentWriters;
using Leadtools.WinForms;

public void DocumentFontsTest()
{
   using (RasterCodecs codecs = new RasterCodecs())
   {
      using (IOcrEngine ocrEngine = OcrEngineManager.CreateEngine(OcrEngineType.Advantage, false))
      {
         ocrEngine.Startup(codecs, null, null, LEAD_VARS.OcrAdvantageRuntimeDir);
         IOcrDocumentManager ocrDocumentManager = ocrEngine.DocumentManager;

         using (IOcrDocument ocrDocument = ocrEngine.DocumentManager.CreateDocument())
         {
            // Add a page to OCR
            IOcrPage ocrPage = ocrDocument.Pages.AddPage(Path.Combine(LEAD_VARS.ImagesDir, "Ocr1.tif"), null);

            ocrPage.AutoZone(null);
            ocrPage.Recognize(null);

            // Show the current fonts used to save default documents
            Console.WriteLine("Saving use the following fonts:");
            ShowFonts(ocrDocumentManager);
            ocrDocument.Save(Path.Combine(LEAD_VARS.ImagesDir, "Ocr1_DefaultFonts.pdf"), DocumentFormat.Pdf, null);

            // Now change the fonts to something else
            string[] newFonts = ocrDocumentManager.GetFontNames(null);

            // Use Cambira for Proportional Serif font - instead of Times New Roman
            newFonts[0] = "Cambria";
            // Use Calibri for Proportional Sans-serif font - instead of Arial
            newFonts[1] = "Calibri";
            // Use Lucida Console for Monospace fonts (both Serif and Sans-serif)
            newFonts[2] = "Lucida Console";
            newFonts[3] = "Lucida Console";
            // Leave the ICR and MICR fonts the same

            ocrDocumentManager.SetFontNames(null, newFonts);

            // Show the new fonts used to save default documents
            Console.WriteLine("Saving use the following fonts:");
            ShowFonts(ocrDocumentManager);
            ocrDocument.Save(Path.Combine(LEAD_VARS.ImagesDir, "Ocr1_CustomFonts.pdf"), DocumentFormat.Pdf, null);
         }
      }
   }
}

private static void ShowFonts(IOcrDocumentManager ocrDocumentManager)
{
   // Get the default fonts
   // The default fonts will be used for all Latin languages
   string[] fonts = ocrDocumentManager.GetFontNames(null);

   // This should return an array of 6 items, as follows:
   Console.WriteLine("Proportional Serif font:        " + fonts[0]);
   Console.WriteLine("Proportional Sans-serif font:   " + fonts[1]);
   Console.WriteLine("Monospace Serif font:           " + fonts[2]);
   Console.WriteLine("Monospace Sans-serif font:      " + fonts[3]);
   Console.WriteLine("ICR (hand-written) font:        " + fonts[4]);
   Console.WriteLine("MICR (Check) font:              " + fonts[5]);
}

static class LEAD_VARS
{
public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";
public const string OcrAdvantageRuntimeDir = @"C:\LEADTOOLS 19\Bin\Common\OcrAdvantageRuntime";
}
必要条件

ターゲットプラットホーム

参照

参照

IOcrDocumentManagerインターフェース
IOcrDocumentManagerメンバ
IOcrPage.Recognize
IOcrDocumentインターフェース
IOcrDocument.Save
IOcrDocument.SaveXml
IOcrEngineインターフェース
OcrEngineManagerクラス
OcrEngineType列挙体
LEADTOOLS .NET OCRによるプログラミング

Leadtools.Forms.Ocrは、認識またはDocument Imaging Suiteのライセンスと、解除キーが必要です。詳細は、以下を参照してください。LEADTOOLSツールキット機能