/// <summary> /// Creates a fake <see cref="FormLayoutClient" /> and instruments it to make use of the Azure Core /// Test Framework functionalities. /// </summary> /// <returns>The instrumented <see cref="FormLayoutClient" />.</returns> private FormLayoutClient CreateInstrumentedClient() { var fakeEndpoint = new Uri("http://localhost"); var fakeCredential = new AzureKeyCredential("fakeKey"); var client = new FormLayoutClient(fakeEndpoint, fakeCredential); return(InstrumentClient(client)); }
/// <summary> /// Creates a <see cref="FormLayoutClient" /> with the endpoint and API key provided via environment /// variables and instruments it to make use of the Azure Core Test Framework functionalities. /// </summary> /// <returns>The instrumented <see cref="FormLayoutClient" />.</returns> private FormLayoutClient CreateInstrumentedClient() { var endpointEnvironmentVariable = Environment.GetEnvironmentVariable(TestEnvironment.EndpointEnvironmentVariableName); var keyEnvironmentVariable = Environment.GetEnvironmentVariable(TestEnvironment.ApiKeyEnvironmentVariableName); Assert.NotNull(endpointEnvironmentVariable); Assert.NotNull(keyEnvironmentVariable); var endpoint = new Uri(endpointEnvironmentVariable); var credential = new FormRecognizerApiKeyCredential(keyEnvironmentVariable); var client = new FormLayoutClient(endpoint, credential); return(InstrumentClient(client)); }
static async Task AnalyzeLayout(FormLayoutClient client) { var filePath = "/Users/chstone/Downloads/sample_data/Test/Invoice_6.pdf"; using var stream = File.OpenRead(filePath); var poller = await client.StartExtractLayoutAsync(stream, FormContentType.Pdf, true); var resp = await poller.WaitForCompletionAsync(TimeSpan.FromSeconds(1)); var result = resp.Value; foreach (var page in result) { Console.WriteLine($"- Page#: {page.PageNumber}"); Console.WriteLine($" Angle: {page.RawExtractedPage.Angle}"); Console.WriteLine($" Width: {page.RawExtractedPage.Width} {page.RawExtractedPage.Unit}"); Console.WriteLine($" Height: {page.RawExtractedPage.Height} {page.RawExtractedPage.Unit}"); Console.WriteLine($" Lang: {page.RawExtractedPage.Language}"); Console.WriteLine($" Page#: {page.RawExtractedPage.Page}"); Console.WriteLine($" LineCount: {page.RawExtractedPage.Lines.Count}"); Console.WriteLine($" Tables:"); foreach (var table in page.Tables) { Console.WriteLine($" - Dims: {table.ColumnCount} x {table.RowCount}"); Console.WriteLine($" Cells:"); foreach (var cell in table.Cells) { Console.WriteLine($" - Text: {cell.Text}"); Console.WriteLine($" Col: {cell.ColumnIndex}"); Console.WriteLine($" Row: {cell.RowIndex}"); Console.WriteLine($" ColSpan: {cell.ColumnSpan}"); Console.WriteLine($" RowSpan: {cell.RowSpan}"); Console.WriteLine($" Confidence: {cell.Confidence}"); Console.WriteLine($" Head: {cell.IsHeader}"); Console.WriteLine($" Foot: {cell.IsFooter}"); Console.WriteLine($" Box: {GetBoundingBoxString(cell.BoundingBox)}"); } } } }
static async Task Main(string[] args) { var endpoint = Environment.GetEnvironmentVariable(EnvEndpoint) ?? throw new ArgumentNullException(EnvEndpoint); var key = Environment.GetEnvironmentVariable(EnvApiKey) ?? throw new ArgumentNullException(EnvApiKey); var frEndpoint = new Uri(endpoint); var frKey = new FormRecognizerApiKeyCredential(key); var frOptions = new FormRecognizerClientOptions(ServiceVersion.V2_0_Preview); var custom = new CustomFormClient(frEndpoint, frKey, frOptions); var receipts = new ReceiptClient(frEndpoint, frKey, frOptions); var layout = new FormLayoutClient(frEndpoint, frKey, frOptions); // await TrainCustomModelWithLabels(custom); // await AnalyzeWithCustomModelWithLabels(custom); // await AnalyzeLayout(layout); // await AnalyzeReceipt(receipts); // await GetModelSummary(custom); // await DeleteModel(custom); await Task.CompletedTask; }