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

フレームを表示

GetFontNamesメソッド








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

パラメーター

languageName
言語名。詳細な情報のための意見を参照してください。

戻り値

最終的なドキュメントで使われるフォント名を格納する6文字列値の配列。
解説

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

OCRエンジンは、以下のように最終アウトプットドキュメントを作成するとき、6つの様々なフォントを使います。以下のテーブルは、配列の添字とフォント説明を示します:

インデックス 説明
0 プロポーショナルセリフ文字で使用するフォント。
1 プロポーショナルサンセリフ体文字で使用するフォント。
2 等幅セリフ文字で使用するフォント。
3 等幅サンセリフ体文字で使用するフォント。
4 ICR(手書きの)文字で使用するフォント。
5 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ツールキット機能