使用IRONPDF 如何在ASP.NET Core中從PDF中讀取數據 Curtis Chau 更新日期:9月 21, 2025 Download IronPDF NuGet 下載 DLL 下載 Windows 安裝程式 Start Free Trial Copy for LLMs Copy for LLMs Copy page as Markdown for LLMs Open in ChatGPT Ask ChatGPT about this page Open in Gemini Ask Gemini about this page Open in Grok Ask Grok about this page Open in Perplexity Ask Perplexity about this page Share Share on Facebook Share on X (Twitter) Share on LinkedIn Copy URL Email article 在 .NET Core 應用程式中處理 PDF 檔案可能比看起來更複雜。 您可能需要從上傳的發票中提取文本、從調查中抓取表單數據,或解析表格以用於您的資料庫。 我見過很多專案因為開發人員使用過於複雜的庫而減速。 這就是 IronPDF 的用武之地。 它允許您閱讀和處理 PDF 文檔,而無需面對混亂的依賴項或編寫大量的自訂解析代碼。 無論您是處理簡單文本、數位簽名,還是結構化數據,IronPDF 都讓它變得簡單。 本指南將向您展示如何在 ASP.NET 中從 PDF 檔案中讀取數據、處理 IFormFile、處理位元陣列,甚至將檔案返回給使用者或將其呈現為 HTML 字串。 您也可以將其整合到您的解決方案中、在瀏覽器中顯示輸出或將其存儲在資料庫中。 如何在 ASP.NET Core 中設置 IronPDF? 在您的 ASP.NET Core 項目中開始使用 IronPDF 只需幾分鐘。 通過 NuGet Package Manager Console 使用以下命令安裝 IronPDF NuGet 套件: Install-Package IronPdf 或者通過 .NET CLI: dotnet add package IronPdf 安裝後,將 IronPDF 命名空間新增到您的類 Program、控制器或服務中: using IronPdf; using IronPdf; Imports IronPdf $vbLabelText $csharpLabel For detailed installation options including Docker deployment, Azure setup, and additional information, check the comprehensive documentation. 您如何從 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 page IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel ExtractAllText 方法返回包含來自 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 $vbLabelText $csharpLabel 此示例代碼有效地處理上傳的 PDF 檔案。 IFormFile 參數適用於 Razor 頁面或 MVC 控制器,而 MemoryStream 確保在不創建暫時檔案的情況下順利處理,最終改善響應時間。 開發人員可以下載、保存或處理提取的文本以用於資料庫存儲、生成報告或在瀏覽器中顯示內容。 如何讀取 PDF 表單數據? PDF 表單包含使用者填寫的互動字段。 IronPDF simplifies extracting this form data through its comprehensive forms API, supporting all standard AcroForm field types. You can easily extract all form field data, including text boxes, checkboxes, and content type details. 響應可以然後被保存到資料庫、返還給使用者,或者整合到您的 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.com $vbLabelText $csharpLabel ExtractForm 端點使用 PdfDocument 的 Form 屬性從上傳的 PDF 中讀取互動字段。 每個字段都有一個名稱和值,這些被收集到字典中並以 JSON 返回。 這使得容易從文本框、複選框和其他輸入中捕獲數據,允許 PDF 表單提交直接整合到您的應用程式或資料庫中。 輸出 您如何從 PDF 文檔中提取表格數據? PDF 中的表格實質上是格式化的文本,需要解析邏輯來提取結構化數據。 IronPDF 在保留間距的同時提取文本,然後您可以解析它來從 PDF 檔案中讀取數據在 ASP.NET 中: [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 $vbLabelText $csharpLabel 此代碼提取文本並根據間距模式將其拆分為潛在的表格行。 對於更複雜的表格,您可能需要使用關鍵字識別表格邊界或根據具體的 PDF 結構實現更複雜的解析邏輯。 此輸出可以下載、在瀏覽器中顯示或處理以獲取其他信息。 您可以整合 CSS 格式化或 HTML 字串渲染來動態顯示表格在您的解決方案中。 輸出 您如何在 ASP.NET Core 中處理上傳的 PDF 檔案? 處理上傳的 PDF 需要將 IFormFile 轉換為 IronPDF 可以讀取的格式。 This approach works seamlessly with Razor Pages and MVC controllers: [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 $vbLabelText $csharpLabel 此異步任務確保非阻塞處理,並且使用對象發送者、eventargs e 和標準 .NET 庫一起工作。 使用 ReturnFile 與 Content-Disposition 標頭允許使用者安全地下載處理後的 PDF 檔案。 為了額外的安全性,請考慮在處理前實現文件驗證。 結論 IronPDF 使其在 ASP.NET Core 和其他 .NET Core 應用程式中輕鬆讀取、提取、處理和保存 PDF 文檔。 無論您是在處理表單、表格、純文本或數位簽名,該 .NET 庫都簡化了通常需要數小時完成的任務,只需要幾行代碼。 您可以創建、轉換、訪問和顯示輸出於 HTML、瀏覽器甚至圖像格式。 從免費試用開始,以探索 IronPDF 在您的 ASP.NET Core 中的全部功能。 您可以在承諾購入許可證之前構建和測試您的 PDF 提取工作流。 對於生產,IronPDF 提供了適合單人開發人員或大型解決方案的靈活選項。 坦率地說,使用 IronPDF 是我發現處理 PDF 檔案在 ASP.NET Core 中最快的方法之一,而不需通常的麻煩。 常見問題解答 在 .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 中用於讀取串流 PDF 內容的最新 API? 是的。在 .NET 10 中,IronPDF 可以使用 Stream 和 MemoryStream 等 API 從位元組數組或記憶體流處理 PDF 數據,從而無需保存臨時文件即可讀取 PDF。這使其適用於高效能伺服器場景,以及在 Web API 中上傳或處理 PDF 資料。 Curtis Chau 立即與工程團隊聊天 技術作家 Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。 相關文章 發表日期 11月 13, 2025 如何在 C# 中合併兩個 PDF 位元組數組 使用 IronPDF 在 C# 中合併兩個 PDF 位元組數組。學習如何透過簡單的程式碼範例,將來自位元組數組、記憶體流和資料庫的多個 PDF 文件合併在一起。 閱讀更多 發表日期 11月 13, 2025 如何在 ASP.NET MVC 中創建 PDF 檢視器 為 ASP.NET MVC 應用程式構建一個強大的 PDF 檢視器。顯示 PDF 文件,將視圖轉換為 PDF,使用 IronPDF 添加互動功能。 閱讀更多 發表日期 11月 13, 2025 如何建立 .NET HTML 轉 PDF 轉換器 學習如何在.NET中使用IronPDF將HTML轉換為PDF。 閱讀更多 如何在.NET中從PDF中提取資料如何在C#中以程式化方式讀...
發表日期 11月 13, 2025 如何在 C# 中合併兩個 PDF 位元組數組 使用 IronPDF 在 C# 中合併兩個 PDF 位元組數組。學習如何透過簡單的程式碼範例,將來自位元組數組、記憶體流和資料庫的多個 PDF 文件合併在一起。 閱讀更多
發表日期 11月 13, 2025 如何在 ASP.NET MVC 中創建 PDF 檢視器 為 ASP.NET MVC 應用程式構建一個強大的 PDF 檢視器。顯示 PDF 文件,將視圖轉換為 PDF,使用 IronPDF 添加互動功能。 閱讀更多