/// <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));
        }
示例#3
0
        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)}");
                    }
                }
            }
        }
示例#4
0
        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;
        }