如何在ASP.NET Core中從PDF中讀取數據
在 .NET Core 應用程式中處理 PDF 文件可能比看起來棘手得多。 您可能需要從上傳的發票中提取文字、從調查中取得表單數據,或解析資料庫中的表格。 我見過很多專案因為開發人員使用了過於複雜的函式庫而進展緩慢。 這時IronPDF就派上用場了。 它允許您讀取和處理 PDF 文檔,而無需處理混亂的依賴關係或編寫大量的自訂解析程式碼。
無論您是處理簡單的文字、數位簽名還是結構化數據,IronPDF 都能讓一切變得輕鬆。 本指南向您展示如何在 ASP.NET 中讀取 PDF 文件中的資料、處理 IFormFile、使用位元組數組,甚至將文件傳回給使用者或將其呈現為 HTML 字串。 您也可以將其整合到您的解決方案中,在瀏覽器中顯示輸出,或將其儲存在資料庫中。
如何在 ASP.NET Core 中設定 IronPDF?
在 ASP.NET Core 專案中開始使用 IronPDF 只需幾分鐘。 使用以下命令透過 NuGet 套件管理器控制台安裝IronPDF NuGet 套件:
Install-Package IronPdf
或透過 .NET CLI:
dotnet add package IronPdf安裝完成後,將 IronPDF 命名空間新增至您的類別程式、控制器或服務:
using IronPdf;using IronPdf;Imports IronPdf如何從PDF文件中提取文字?
IronPDF 的ExtractAllText方法可立即存取 PDF 文件中的所有文字內容。 此方法可處理各種文字編碼,並保持原始文件的閱讀順序,從而確保從 ASP.NET Core 應用程式中的 PDF 檔案準確提取資料。
// Load a PDF document
var pdf = PdfDocument.FromFile("document.pdf");
// Extract all text
string allText = pdf.ExtractAllText();
// Extract text from specific page (0-indexed)
string pageText = pdf.ExtractTextFromPage(0); // current page// Load a PDF document
var pdf = PdfDocument.FromFile("document.pdf");
// Extract all text
string allText = pdf.ExtractAllText();
// Extract text from specific page (0-indexed)
string pageText = pdf.ExtractTextFromPage(0); // current pageIRON VB CONVERTER ERROR developers@ironsoftware.comExtractAllText 方法傳回一個字串,其中包含 PDF 中的所有可讀文本,並保留換行符和空格。 對於特定頁面的提取,ExtractTextFromPage 允許使用從零開始的索引來定位單一頁面。 當您提供正確的密碼時,此方法可與加密 PDF無縫搭配使用。
以下是一個實用的 ASP.NET Core 控制器實現,示範如何使用此 PDF 檔案讀取 PDF 檔案中的資料:
範例程式碼
[ApiController]
[Route("api/[controller]")]
public class PdfController : ControllerBase
{
[HttpPost("extract-text")]
public IActionResult ExtractText(IFormFile pdfFile)
{
using var stream = new MemoryStream();
pdfFile.CopyTo(stream);
var pdf = new PdfDocument(stream.ToArray());
var extractedText = pdf.ExtractAllText();
return Ok(new { text = extractedText });
}
}[ApiController]
[Route("api/[controller]")]
public class PdfController : ControllerBase
{
[HttpPost("extract-text")]
public IActionResult ExtractText(IFormFile pdfFile)
{
using var stream = new MemoryStream();
pdfFile.CopyTo(stream);
var pdf = new PdfDocument(stream.ToArray());
var extractedText = pdf.ExtractAllText();
return Ok(new { text = extractedText });
}
}IRON VB CONVERTER ERROR developers@ironsoftware.com這段範例程式碼能夠有效率地處理上傳的PDF檔案。 IFormFile 參數可與 Razor Pages 或 MVC 控制器搭配使用,而MemoryStream可確保流暢處理而不建立臨時文件,最終提高回應時間。 開發人員可以下載、儲存或處理提取的文本,用於資料庫儲存、產生報告或在瀏覽器中顯示內容。
如何讀取PDF表單資料?
PDF 表單包含使用者需要填寫的互動式欄位。 IronPDF 透過其全面的表單 API 簡化了表單資料的擷取,支援所有標準的AcroForm欄位類型。您可以輕鬆提取所有表單欄位數據,包括文字方塊、複選框和內容類型詳細資訊。
然後可以將回應儲存到資料庫、傳回給用戶,或整合到您的 ASP.NET 應用程式工作流程中。 以下程式碼示範如何實現此功能:
[HttpPost("extract-form")]
public IActionResult ExtractForm([FromForm] IFormFile pdfFile)
{
if (pdfFile == null || pdfFile.Length == 0)
{
return BadRequest("No PDF file uploaded.");
}
using var stream = new MemoryStream();
pdfFile.CopyTo(stream);
var pdf = new PdfDocument(stream.ToArray());
var formData = new Dictionary<string, string>();
if (pdf.Form != null)
{
foreach (var field in pdf.Form)
{
formData[field.Name] = field.Value;
}
}
return Ok(new { formFields = formData });
}[HttpPost("extract-form")]
public IActionResult ExtractForm([FromForm] IFormFile pdfFile)
{
if (pdfFile == null || pdfFile.Length == 0)
{
return BadRequest("No PDF file uploaded.");
}
using var stream = new MemoryStream();
pdfFile.CopyTo(stream);
var pdf = new PdfDocument(stream.ToArray());
var formData = new Dictionary<string, string>();
if (pdf.Form != null)
{
foreach (var field in pdf.Form)
{
formData[field.Name] = field.Value;
}
}
return Ok(new { formFields = formData });
}IRON VB CONVERTER ERROR developers@ironsoftware.comExtractForm 端點使用 PdfDocument 的 Form 屬性從上傳的 PDF 中讀取互動式欄位。 每個欄位都有一個名稱和一個值,它們被收集到一個字典中,並以 JSON 格式傳回。 這樣就可以輕鬆地從文字方塊、複選框和其他輸入框中捕獲數據,從而可以直接處理 PDF 表單提交內容並將其整合到您的應用程式或資料庫中。
輸出
如何從PDF文件中提取表格資料?
PDF 中的表格本質上是格式化的文本,需要解析邏輯來提取結構化資料。 IronPDF 可以提取文字並保留間距,然後您可以在 ASP.NET 中解析這些文字以從 PDF 檔案中讀取資料:
[HttpPost("extract-table")]
public IActionResult ExtractTable([FromForm] IFormFile pdfFile)
{
if (pdfFile == null || pdfFile.Length == 0)
return BadRequest("No PDF file uploaded.");
using var memoryStream = new MemoryStream();
pdfFile.CopyTo(memoryStream);
// Load PDF from byte array
var pdf = new PdfDocument(memoryStream.ToArray());
// Extract all text
string text = pdf.ExtractAllText();
// Split text into lines (rows)
string[] lines = text.Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries);
var tableData = new List<string[]>();
foreach (string line in lines)
{
// Split line into columns using tab character
string[] columns = line
.Split('\t')
.Where(c => !string.IsNullOrWhiteSpace(c))
.ToArray();
if (columns.Length > 0)
tableData.Add(columns);
}
var table = tableData.Select(r => string.Join(" | ", r)).ToList();
return Ok(new { Table = table });
}[HttpPost("extract-table")]
public IActionResult ExtractTable([FromForm] IFormFile pdfFile)
{
if (pdfFile == null || pdfFile.Length == 0)
return BadRequest("No PDF file uploaded.");
using var memoryStream = new MemoryStream();
pdfFile.CopyTo(memoryStream);
// Load PDF from byte array
var pdf = new PdfDocument(memoryStream.ToArray());
// Extract all text
string text = pdf.ExtractAllText();
// Split text into lines (rows)
string[] lines = text.Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries);
var tableData = new List<string[]>();
foreach (string line in lines)
{
// Split line into columns using tab character
string[] columns = line
.Split('\t')
.Where(c => !string.IsNullOrWhiteSpace(c))
.ToArray();
if (columns.Length > 0)
tableData.Add(columns);
}
var table = tableData.Select(r => string.Join(" | ", r)).ToList();
return Ok(new { Table = table });
}IRON VB CONVERTER ERROR developers@ironsoftware.com這段程式碼提取文本,並根據間距模式將其拆分為可能的表格行。 對於更複雜的表格,您可能需要使用關鍵字來識別表格邊界,或根據您的特定 PDF 結構實作更複雜的解析邏輯。
可以下載此輸出結果,在瀏覽器中顯示,或對其進行處理以獲取更多資訊。 您可以整合 CSS 格式化或 HTML 字串渲染,以便在您的解決方案中動態顯示表格。
輸出
在 ASP.NET Core 中如何處理上傳的 PDF 檔案?
處理上傳的 PDF 檔案需要將IFormFile轉換為 IronPDF 可以讀取的格式。 這種方法可以與Razor Pages和MVC 控制器無縫合作:
[HttpPost("process-upload")]
public async Task<IActionResult> ProcessPdf([FromForm] IFormFile file)
{
if (file == null || file.Length == 0)
return BadRequest("No PDF file uploaded.");
using var ms = new MemoryStream();
await file.CopyToAsync(ms);
// Load PDF from byte array
var pdf = new PdfDocument(ms.ToArray());
// Extract text and page count
var text = pdf.ExtractAllText();
var pageCount = pdf.PageCount;
return Ok(new
{
text = text,
pages = pageCount
});
}[HttpPost("process-upload")]
public async Task<IActionResult> ProcessPdf([FromForm] IFormFile file)
{
if (file == null || file.Length == 0)
return BadRequest("No PDF file uploaded.");
using var ms = new MemoryStream();
await file.CopyToAsync(ms);
// Load PDF from byte array
var pdf = new PdfDocument(ms.ToArray());
// Extract text and page count
var text = pdf.ExtractAllText();
var pageCount = pdf.PageCount;
return Ok(new
{
text = text,
pages = pageCount
});
}IRON VB CONVERTER ERROR developers@ironsoftware.com此非同步任務可確保非阻塞處理,並可與物件傳送器、事件參數 e 和標準 .NET 程式庫搭配使用。 使用帶有 Content-Disposition 標頭的 ReturnFile 可以讓使用者安全地下載已處理的 PDF 檔案。 為了提高安全性,請考慮在處理文件之前實施文件驗證。
結論
IronPDF 讓在 ASP.NET Core 和其他 .NET Core 應用程式中讀取、提取、處理和保存 PDF 文件變得容易。 無論您是處理表單、表格、純文字還是數位簽名,這個 .NET 函式庫都能將通常需要數小時才能完成的任務簡化為幾行程式碼。 您可以建立、轉換、存取和顯示 HTML、瀏覽器甚至圖像格式的輸出。
首先免費試用,探索 IronPDF 在 ASP.NET Core 中的完整功能。 在購買許可證之前,您可以建立和測試您的 PDF 提取工作流程。 對於生產環境,IronPDF 提供靈活的選項,適合獨立開發者或大型解決方案。 說實話,使用 IronPDF 是我在 ASP.NET Core 中處理 PDF 文件最快的方法之一,而且不會像通常那樣令人頭痛。
常見問題解答
在 .NET Core 應用程式中使用 PDF 檔案時,可能會遇到哪些挑戰?
在 .NET Core 中處理 PDF 檔案可能很棘手,因為需要在不使用過於複雜的程式庫的情況下抽取文字、擷取表單資料或解析表格。
IronPDF 如何幫助簡化在 ASP.NET 中從 PDF 檔案讀取資料的過程?
IronPDF 藉由消除雜亂的依賴關係或大量自訂解析程式碼的需求,簡化 PDF 文件的閱讀與處理。
為什麼在處理 PDF 時要避免使用過於複雜的程式庫?
使用過於複雜的函式庫會拖慢專案進度並增加開發時間,而 IronPDF 等較簡單的解決方案則可簡化流程。
IronPDF 可以從 PDF 檔案中提取哪些類型的資料?
IronPDF 可以從 PDF 檔案中萃取文字、表單資料和表格,因此可滿足各種資料處理需求。
IronPDF 可以用於處理 ASP.NET 應用程式中上傳的發票嗎?
是的,IronPDF 可以在 ASP.NET 應用程式中有效地讀取和處理上傳的發票中的文字。
使用 IronPDF 時,是否需要編寫自訂的解析程式碼?
不,IronPDF 允許您處理 PDF 文件,而不需要大量的自訂解析程式碼。
在 .NET Core 應用程式中使用 IronPDF 有什麼好處?
IronPDF 提供了一種直接讀取和處理 PDF 檔案的方式,在沒有複雜依賴的情況下增強了資料處理能力。
.NET 10 - IronPDF 是否與其完全相容?
是的,IronPDF 的設計完全相容於 .NET 10(以及 .NET 9、8、7、6、5、Core、Standard 和 Framework 4.6.2+),確保您可以在最新的 .NET 平台上執行其所有的 PDF 讀寫功能,而無需特殊的變通。
IronPDF 是否支持 .NET 10 中最新的 API,用于阅读流式 PDF 内容?
是的。在 .NET 10 中,IronPDF 可以使用 Stream 和 MemoryStream 等 API 從位元組陣列或記憶體流中處理 PDF 資料,讓您無需保存臨時檔案即可讀取 PDF。這使得它適用於高效能的伺服器情境,以及在 Web API 中上傳或處理 PDF 資料。






