我已经使用这里的代码为预构建的发票模型https://docs.microsoft.com/en-us/azure/cognitive-services/form-recognizer/quickstarts/client-library?tabs=preview%2Cv2-1&pivots=programming-language-csharp#analyze-invoices提取了发票字段
但是,没有关于如何提取发票行项目的文档。我在这里看到这个功能是最近推出的,在2021年3月https://docs.microsoft.com/en-us/azure/cognitive-services/form-recognizer/whats-new
谁能指导我如何使用预建模型获得发票行项目?
发布于 2021-04-15 03:21:46
请将Form Recognizer SDK NuGet更新到v3.1.0-beta.4版本以查看发票行项目。调用SDK并获取行项目详细信息的示例代码如下:
FormRecognizerClient client = new FormRecognizerClient(new Uri(YOUR_FR_URL), new Azure.AzureKeyCredential(YOUR_FR_KEY));
using (FileStream stream = new FileStream(@"SampleInvoice.pdf", FileMode.Open))
{
RecognizeInvoicesOptions options = new RecognizeInvoicesOptions() { IncludeFieldElements = true };
var oper = await client.StartRecognizeInvoices(stream, options).WaitForCompletionAsync();
var rawResponse = oper.GetRawResponse();
rawResponse.ContentStream.Position = 0;
using (var reader = new StreamReader(oper.GetRawResponse().ContentStream))
{
Console.WriteLine($"Raw output:");
Console.WriteLine(reader.ReadToEnd());
}
foreach (var invoice in oper.Value)
{
foreach (FormField field in invoice.Fields.Values)
{
Console.WriteLine($"Field {field.Name}: ");
Console.WriteLine($" Value: {field.ValueData?.Text}");
if (field.Name == "Items")
{
var count = 0;
foreach (var lineField in field.Value.AsList())
{
count++;
Console.WriteLine($" LineItem {count}: ");
foreach (var (lineFieldName, lineFieldValue) in lineField.Value.AsDictionary())
{
Console.WriteLine($" LineField: {lineFieldName}");
Console.WriteLine($" Value: {lineFieldValue.ValueData?.Text}");
}
}
}
}
}
}https://stackoverflow.com/questions/66749196
复制相似问题