如何使用 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);
}
我正在使用 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);
}