- 概要
- Document Processing Contracts
- リリース ノート
- Document Processing Contracts について
- Box クラス
- IPersistedActivity インターフェイス
- PrettyBoxConverter クラス
- IClassifierActivity インターフェイス
- IClassifierCapabilitiesProvider インターフェイス
- ClassifierDocumentType クラス
- ClassifierResult クラス
- ClassifierCodeActivity クラス
- ClassifierNativeActivity クラス
- ClassifierAsyncCodeActivity クラス
- ClassifierDocumentTypeCapability クラス
- ContentValidationData クラス
- EvaluatedBusinessRulesForFieldValue クラス
- EvaluatedBusinessRuleDetails クラス
- ExtractorAsyncCodeActivity クラス
- ExtractorCodeActivity クラス
- ExtractorDocumentType クラス
- ExtractorDocumentTypeCapabilities クラス
- ExtractorFieldCapability クラス
- ExtractorNativeActivity クラス
- ExtractorResult クラス
- FieldValue クラス
- FieldValueResult クラス
- ICapabilitiesProvider インターフェイス
- IExtractorActivity インターフェイス
- ExtractorPayload クラス
- DocumentActionPriority 列挙型
- DocumentActionData クラス
- DocumentActionStatus 列挙型
- DocumentActionType 列挙型
- DocumentClassificationActionData クラス
- DocumentValidationActionData クラス
- UserData クラス
- Document クラス
- DocumentSplittingResult クラス
- DomExtensions クラス
- Page クラス
- PageSection クラス
- Polygon クラス
- PolygonConverter クラス
- Metadata クラス
- WordGroup クラス
- Word クラス
- ProcessingSource 列挙型
- ResultsTableCell クラス
- ResultsTableValue クラス
- ResultsTableColumnInfo クラス
- ResultsTable クラス
- Rotation 列挙型
- ルール クラス
- RuleResult クラス
- RuleSet クラス
- RuleSetResult クラス
- SectionType 列挙型
- WordGroupType 列挙型
- IDocumentTextProjection インターフェイス
- ClassificationResult クラス
- ExtractionResult クラス
- ResultsDocument クラス
- ResultsDocumentBounds クラス
- ResultsDataPoint クラス
- ResultsValue クラス
- ResultsContentReference クラス
- ResultsValueTokens クラス
- ResultsDerivedField クラス
- ResultsDataSource 列挙型
- ResultConstants クラス
- SimpleFieldValue クラス
- TableFieldValue クラス
- DocumentGroup クラス
- DocumentTaxonomy クラス
- DocumentType クラス
- Field クラス
- FieldType 列挙型
- FieldValueDetails クラス
- LanguageInfo クラス
- MetadataEntry クラス
- TextType 列挙型
- TypeField クラス
- ITrackingActivity インターフェイス
- ITrainableActivity インターフェイス
- ITrainableClassifierActivity インターフェイス
- ITrainableExtractorActivity インターフェイス
- TrainableClassifierAsyncCodeActivity クラス
- TrainableClassifierCodeActivity クラス
- TrainableClassifierNativeActivity クラス
- TrainableExtractorAsyncCodeActivity クラス
- TrainableExtractorCodeActivity クラス
- TrainableExtractorNativeActivity クラス
- BasicDataPoint クラス - プレビュー
- ExtractionResultHandler クラス - プレビュー
- Document Understanding ML
- Document Understanding OCR ローカル サーバー
- Document Understanding
- IntelligentOCR
- リリース ノート
- IntelligentOCR アクティビティ パッケージについて
- プロジェクトの対応 OS
- タクソノミーを読み込み
- ドキュメントをデジタル化
- ドキュメント分類スコープ
- キーワード ベースの分類器
- Document Understanding プロジェクト分類器
- インテリジェント キーワード分類器
- ドキュメント分類アクションを作成
- ドキュメント検証成果物を作成
- ドキュメント検証成果物を取得
- ドキュメント分類アクション完了まで待機し再開
- 分類器トレーニング スコープ
- キーワード ベースの分類器トレーナー
- インテリジェント キーワード分類器トレーナー
- データ抽出スコープ
- Document Understanding プロジェクト抽出器
- Document Understanding プロジェクト抽出器トレーナー
- 正規表現ベースの抽出器
- フォーム抽出器
- インテリジェント フォーム抽出器
- ドキュメントを墨消し
- ドキュメント検証アクションを作成
- ドキュメント検証アクション完了まで待機し再開
- 抽出器トレーニング スコープ
- 抽出結果をエクスポート
- マシン ラーニング抽出器
- マシン ラーニング抽出器トレーナー
- マシン ラーニング分類器
- マシン ラーニング分類器トレーナー
- 生成 AI 分類器
- 生成 AI 抽出器
- 認証を構成する
- ML サービス
- OCR
- OCR Contracts
- リリース ノート
- OCR コントラクトについて
- プロジェクトの対応 OS
- IOCRActivity インターフェイス
- OCRAsyncCodeActivity クラス
- OCRCodeActivity クラス
- OCRNativeActivity クラス
- Character クラス
- OCRResult クラス
- Word クラス
- FontStyles 列挙型
- OCRRotation 列挙型
- OCRCapabilities クラス
- OCRScrapeBase クラス
- OCRScrapeFactory クラス
- ScrapeControlBase クラス
- ScrapeEngineUsages 列挙型
- ScrapeEngineBase
- ScrapeEngineFactory クラス
- ScrapeEngineProvider クラス
- OmniPage
- PDF
- [リストから削除済] ABBYY
- [リストから削除済] ABBYY Embedded

Document Understanding アクティビティ
PDF ファイルを読み込み
ドキュメントに含まれるすべての文字を読み取ることのできるアクティビティを使用して、.pdf ファイルの内容を読み取り、個別に抽出できます。
必要に応じて、文字を認識できるシンプルなアクティビティを使用することも、OCR エンジンを持つアクティビティを使用することもできます。OCR エンジンを使用する利点は、スキャンしたドキュメント、署名のあるドキュメント、あるいは手書きのドキュメントであっても、ドキュメントの読み取りを適用できることです。
以下の例は、.pdf ファイルを読み取る 2 つの状況を示しています。
- 1 つ目のシナリオとして、[PDF のテキストを読み込み] アクティビティを使用しながら
.pdfファイルを読み取る方法を説明しています。 - 2 つ目のシナリオとして、[OCR で PDF を読み込み] アクティビティを使用しながら
.pdfファイルを読み取る方法を説明しています。 この 2 つのシナリオの主な違いは、2 つ目のシナリオで OCR エンジンも使用されている点です。これは、分析されたファイルが画像やスキャンされたファイルである場合、あるいは署名や手書きのフィールドを含むものである場合に、抽出された情報の詳細が最初のケースよりも正確だということを意味しています。どちらのアクティビティも、UiPath.PDF.Activities パッケージに含まれています。
両方のシナリオに必要なワークフローは 1 つだけであり、任意の読み取り方法の選択をユーザーに求める時点までは共通です。
手順
- Studio を開いて、新しいプロセスを作成します。
- ワークフロー デザイナーに [フローチャート] コンテナーを追加します。
chooseOptionという名前の変数を作成し、型を GenericValue に設定します。既定値は設定しません。注:同じ場所からプロセス全体を実行できるようにするか、指定されたファイルを使用するためにこの例をダウンロードするには、プロジェクト ディレクトリに
.pdfファイルを追加します。
- [入力ダイアログ] アクティビティを追加し、[Start] ノードに接続します。
- [プロパティ] パネルで、式
"Choose one option below:"を [ラベル] フィールドに追加します。 - [Options] フィールドに式
{"Read PDF Text", "Read PDF With OCR"}を追加します。 - [Title] フィールドに値
"Options"を追加します。 - Result (値) フィールドに変数
chooseOptionを追加します。
- [プロパティ] パネルで、式
- [入力ダイアログ] アクティビティの後に [フロー条件分岐] アクティビティを追加し、アクティビティに接続します。
- [プロパティ] パネルで [Condition] フィールドに式
chooseOption = "Read PDF Text"を追加します。
- [プロパティ] パネルで [Condition] フィールドに式
- [シーケンス] コンテナーを追加して、[フロー条件分岐] アクティビティの [True] ブランチに接続します。[シーケンス] の名前は「PDF のテキストを読み込み」にします。このアクティビティは、正規表現を使用して情報を抽出します。
-
次の表に示す変数を作成します。
表 1.作成する変数
変数の型 既定値 extractedText文字列 N/A arrayTextSystem.String[] N/A addressGenericValue N/A city文字列 N/A phoneNumber文字列 N/A invoiceNumber文字列 N/A vendorGenericValue N/A bankName文字列 N/A bankAccount文字列 N/A ibanCode文字列 N/A
-
- [シーケンス] コンテナーを追加して、[フロー条件分岐] アクティビティの [False] ブランチに接続します。[シーケンス] の名前は「OCR で PDF を読み込み」にします。このアクティビティは、OCR エンジン (Microsoft OCR および Tesseract OCR) を使用して情報を抽出します。
-
次の表に示す変数を作成します。
表 2. 作成する変数
変数の型 既定値 extractedTextTesseract文字列 N/A extractedTextMicrosoft文字列 N/A 図 1.ワークフローの開始の概要

-
- [PDF のテキストを読み込み] アクティビティを使用して PDF ファイルを読み込みます。
- [PDF のテキストを読み込み] シーケンス コンテナーをダブルクリックして開きます。
- シーケンス内に [PDF のテキストを読み込み] アクティビティを追加します。
- [プロパティ] パネルで [FileName] フィールドに値
"NPO Invoice.pdf"を追加します。 - [Range] フィールドに値
"All"を追加します。 - [テキスト] フィールドに変数
extractedTextを追加します。
- [プロパティ] パネルで [FileName] フィールドに値
- [PDF のテキストを読み込み] アクティビティの後に [代入] アクティビティを追加します。
- [左辺値 (To)/宛先] フィールドに変数
arrayTextを追加します。 - [右辺値 (Value)] フィールドに式
extractedText.Split(Environment.NewLine.ToArray, StringSplitOptions.RemoveEmptyEntries)を追加します。
- [左辺値 (To)/宛先] フィールドに変数
- [代入] アクティビティの下に [条件分岐 (if)] アクティビティを追加します。
- [条件 (Condition)] フィールドに式
arrayText(0).Equals("Tiefland Glass AG")を追加します。
- [条件 (Condition)] フィールドに式
- [シーケンス] コンテナー内に [代入] アクティビティを追加します。
- [左辺値 (To)/宛先] フィールドに変数
addressを追加します。 - [右辺値 (Value)] フィールドに式
arrayText(2)を追加します。
- [左辺値 (To)/宛先] フィールドに変数
- もう 1 つの [代入] アクティビティを追加し、前のアクティビティの後に配置します。
- [左辺値 (To)/宛先] フィールドに変数
cityを追加します。 - [右辺値 (Value)] フィールドに式
arrayText(3).Split(","c)(0)を追加します。
- [左辺値 (To)/宛先] フィールドに変数
- もう 1 つの [代入] アクティビティを追加し、前のアクティビティの後に配置します。
- [左辺値 (To)/宛先] フィールドに変数
phoneNumberを追加します。 - [右辺値 (Value)] フィールドに式
arrayText(4).Split(":"c)(1).Split({"INVOICE"},StringSplitOptions.None)(0)を追加します。
- [左辺値 (To)/宛先] フィールドに変数
- もう 1 つの [代入] アクティビティを追加し、前のアクティビティの後に配置します。
- [左辺値 (To)/宛先] フィールドに変数
invoiceNumberを追加します。 - [右辺値 (Value)] フィールドに式
arrayText(4).Split(":"c)(1).Split({"INVOICE"},StringSplitOptions.None)(1).Split("#"c)(1)を追加します。
- [左辺値 (To)/宛先] フィールドに変数
- もう 1 つの [代入] アクティビティを追加し、前のアクティビティの後に配置します。
- [左辺値 (To)/宛先] フィールドに変数
vendorを追加します。 - [右辺値 (Value)] フィールドに式
arrayText(arrayText.Count-5)を追加します。
- [左辺値 (To)/宛先] フィールドに変数
- [Else] フィールド内に [代入] アクティビティを追加します。
- [左辺値 (To)/宛先] フィールドに変数
addressを追加します。 - [右辺値 (Value)] フィールドに式
arrayText(1)を追加します。
- [左辺値 (To)/宛先] フィールドに変数
- もう 1 つの [代入] アクティビティを追加し、前のアクティビティの後に配置します。
- [左辺値 (To)/宛先] フィールドに変数
cityを追加します。 - [右辺値 (Value)] フィールドに式
arrayText(2).Split(","c)(0)を追加します。
- [左辺値 (To)/宛先] フィールドに変数
- もう 1 つの [代入] アクティビティを追加し、前のアクティビティの後に配置します。
- [左辺値 (To)/宛先] フィールドに変数
phoneNumberを追加します。 - [右辺値 (Value)] フィールドに式
arrayText(3).Split(":"c)(1).Split({"INVOICE"},StringSplitOptions.None)(0)を追加します。
- [左辺値 (To)/宛先] フィールドに変数
- もう 1 つの [代入] アクティビティを追加し、前のアクティビティの後に配置します。
- [左辺値 (To)/宛先] フィールドに変数
invoiceNumberを追加します。 - [右辺値 (Value)] フィールドに式
arrayText(3).Split(":"c)(1).Split({"INVOICE"},StringSplitOptions.None)(1).Split("#"c)(1)を追加します。
- [左辺値 (To)/宛先] フィールドに変数
- もう 1 つの [代入] アクティビティを追加し、前のアクティビティの後に配置します。
-
[左辺値 (To)/宛先] フィールドに変数
vendorを追加します。 -
[右辺値 (Value)] フィールドに式
arrayText(arrayText.Count-5)を追加します。図 2. [代入 ] アクティビティを含むシーケンスの概要
![[代入] アクティビティを含むシーケンスの概要](https://dev-assets.cms.uipath.com/assets/images/activities/document-understanding-overview-of-the-sequence-containing-the-assign-activities-187494-17b91efc-d7673566.webp)
-
- [条件分岐 (if)] コンテナーの後に [繰り返し (コレクションの各要素)] アクティビティを配置します。
- Values (値) フィールドに変数
arrayTextを追加します。
- Values (値) フィールドに変数
- [繰り返し (コレクションの各要素)] アクティビティの [本体] コンテナー内に [条件分岐 (if)] アクティビティを追加します。
- [条件 (Condition)] フィールドに式
item.Contains("Bank Name:")を追加します。
- [条件 (Condition)] フィールドに式
- [Then] フィールド内に [代入] アクティビティを追加します。
- [左辺値 (To)/宛先] フィールドに変数
bankNameを追加します。 - [右辺値 (Value)] フィールドに式
item.Split(":"c)(1)を追加します。
- [左辺値 (To)/宛先] フィールドに変数
- 前のアクティビティの後に [条件分岐 (if)] アクティビティを追加します。
- [条件 (Condition)] フィールドに式
item.Contains("Bank Account:")を追加します。
- [条件 (Condition)] フィールドに式
- [Then] フィールド内に [代入] アクティビティを追加します。
- [左辺値 (To)/宛先] フィールドに変数
bankNameを追加します。 - [右辺値 (Value)] フィールドに式
item.Split(":"c)(1)を追加します。
- [左辺値 (To)/宛先] フィールドに変数
- 前のアクティビティの後に [条件分岐 (if)] アクティビティを追加します。
- [条件 (Condition)] フィールドに式
item.contains("IBAN Code:")を追加します。
- [条件 (Condition)] フィールドに式
- [Then] フィールド内に [代入] アクティビティを追加します。
-
[左辺値 (To)/宛先] フィールドに変数
ibanCodeを追加します。 -
[右辺値 (Value)] フィールドに式
item.Split(":"c)(1)を追加します。図 3. [繰り返し (コレクションの各要素 )] アクティビティの概要
![[繰り返し (コレクションの各要素)] アクティビティの概要](https://dev-assets.cms.uipath.com/assets/images/activities/document-understanding-overview-of-the-for-each-activity-185318-afaa721e-f6218e6e.webp)
-
- [PDF のテキストを読み込み] シーケンスに戻り、[繰り返し (コレクションの各要素)] アクティビティの下に [テキスト ファイルに書き込み] アクティビティを追加します。
-
FileName フィールドに値
"InvoiceDetails.txt"を追加します。 -
[テキスト] フィールドに
"Invoice details"+Environment.NewLine+Environment.NewLine+"Vendor: "+vendor+Environment.NewLine+"Vendor address: "+address+Environment.NewLine+"City: "+city+Environment.NewLine+"Phone number:"+phoneNumber+Environment.NewLine+"Invoice number:"+invoiceNumber+Environment.NewLine+"Bank name:"+bankName+Environment.NewLine+"Bank account:"+bankAccount+Environment.NewLine+"IBAN Code:"+ibanCodeを追加します。図 4. [繰り返し (コレクションの各要素 )] コンテナーの概要
![[繰り返し (コレクションの各要素)] コンテナーの概要](https://dev-assets.cms.uipath.com/assets/images/activities/document-understanding-overview-of-the-for-each-container-181324-6d05b3dc-9a540b9e.webp)
-
- [Main] ワークフローの作業領域に戻ります。
- [OCR で PDF を読み込み] アクティビティを使用して PDF ファイルを読み込みます。
- [OCR で PDF を読み込み] シーケンス コンテナーを開きます。
- シーケンス内に [OCR で PDF を読み込み] アクティビティをドラッグします。
- FileName フィールドに値
"Invoice02.pdf"を追加します。 - [プロパティ] パネルで [並列度] フィールドに値
1を追加します。
- FileName フィールドに値
- [OCR で PDF を読み込み] アクティビティ内に Google OCR エンジンをドラッグします。
- [プロパティ] パネルの [テキスト] フィールドに変数
extractedTextTesseractを追加します。
- [プロパティ] パネルの [テキスト] フィールドに変数
- もう 1 つの [OCR で PDF を読み込み] アクティビティをドラッグし、前のアクティビティの後に配置します。
- FileName フィールドに値
"Invoice02.pdf"を追加します。 - [プロパティ] パネルで [並列度] フィールドに値
1を追加します。
- FileName フィールドに値
- [OCR で PDF を読み込み] アクティビティ内に Microsoft OCR エンジンをドラッグします。
- [プロパティ] パネルの [テキスト] フィールドに変数
extractedTextMicrosoftを追加します。
- [プロパティ] パネルの [テキスト] フィールドに変数
- [OCR で PDF を読み込み] アクティビティの下に [テキスト ファイルに書き込み] アクティビティをドラッグします。
- FileName フィールドに値
"OCRMicrosoft.txt"を追加します。 - [テキスト] フィールドに変数
extractedTextMicrosoftを追加します。
- FileName フィールドに値
- 前の Write Text File アクティビティの下に Write Text File アクティビティをドラッグします。
-
FileName フィールドに値
"OCRTesseract.txt"を追加します。 -
[テキスト] フィールドに変数
extractedTextTesseractを追加します。図 5. [OCR で PDF を読み込み ] アクティビティの概要
![[OCR で PDF を読み込み] アクティビティの概要](https://dev-assets.cms.uipath.com/assets/images/activities/document-understanding-overview-of-the-read-pdf-with-ocr-activity-183445-40db9ce8-7a40c813.webp)
-
- プロセスを実行します。ロボットは、指定されたプロセスを使用してデータを抽出し、出力を
.txtファイルに保存します。
この例を ZIP 形式でダウンロードするには、「 こちらのリンクにアクセスしてください。