如何使用 itext7 从存储在 blob 存储中的 pdf 中提取文本?

How do i extract text from pdf stored on blob storage using itext7?

我正在使用 itext7 从 pdf 中提取文本。这是我提取本地 pdf 文件文本的代码:

 var pageText = new StringBuilder();  
    using(PdfDocument pdfDocument = new PdfDocument(new PdfReader("E:\es.pdf"))) {  
        var pageNumbers = pdfDocument.GetNumberOfPages();  
        for (int i = 1; i <= pageNumbers; i++) {  
            LocationTextExtractionStrategy strategy = new LocationTextExtractionStrategy();  
            PdfCanvasProcessor parser = new PdfCanvasProcessor(strategy);  
            parser.ProcessPageContent(pdfDocument.GetFirstPage());  
            pageText.Append(strategy.GetResultantText());  
        }  
    } 

但是,我不知道如何解析存储在 azure blob 存储上的 pdf。

如果想阅读pdf格式的azure blob,请参考以下代码

 string storageAccountName = "andyprivate";
            string accountKey = "";
            var blobServiceClient = new BlobServiceClient(
                new Uri($"https://{storageAccountName}.blob.core.windows.net"),
                new StorageSharedKeyCredential(storageAccountName, accountKey),
                new BlobClientOptions());

            var containerClient = blobServiceClient.GetBlobContainerClient("test");
            var blob = containerClient.GetBlobClient("sample.pdf");
            BlobProperties properties = await blob.GetPropertiesAsync();
            var pageText = new StringBuilder();
            using (var stream = await blob.OpenReadAsync(position: 0, bufferSize: (int)properties.ContentLength))
            using (PdfDocument pdfDocument = new PdfDocument(new PdfReader(stream))) {
                var pageNumbers = pdfDocument.GetNumberOfPages();
                for (int i = 1; i <= pageNumbers; i++)
                {
                    LocationTextExtractionStrategy strategy = new LocationTextExtractionStrategy();
                    PdfCanvasProcessor parser = new PdfCanvasProcessor(strategy);
                    parser.ProcessPageContent(pdfDocument.GetPage(i));
                    pageText.Append(strategy.GetResultantText());
                    pageText.Append(Environment.NewLine);


                }

                Console.WriteLine(pageText);
            }