使用IRONPDF 如何在 ASP.NET Core 中从 PDF 文件读取数据 Curtis Chau 已更新:2026年1月21日 下载 IronPDF NuGet 下载 DLL 下载 Windows 安装程序 免费试用 法学硕士副本 法学硕士副本 将页面复制为 Markdown 格式,用于 LLMs 在 ChatGPT 中打开 向 ChatGPT 咨询此页面 在双子座打开 向 Gemini 询问此页面 在 Grok 中打开 向 Grok 询问此页面 打开困惑 向 Perplexity 询问有关此页面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 复制链接 电子邮件文章 IronPDF 通过提供从 PDF 文件中读取文本、表单数据和表格的方法,简化了 ASP.NET Core 中的 PDF 数据提取,无需复杂的依赖项或手动解析,只需编写简单的 C# 代码即可。 在 .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 命名空间添加到您的 Program 类、控制器或服务中: using IronPdf; using IronPdf; $vbLabelText $csharpLabel 有关Docker 部署、 Azure 设置和其他Linux 兼容性等详细安装选项,请查看完整文档。 该库在容器化环境中运行流畅,只需极少的配置,使其成为微服务架构的理想选择。 您还可以将其配置为适用于AWS Lambda环境、 Windows 服务器或macOS 系统。 安装概述提供了特定于平台的指导,而高级 NuGet 选项则涵盖了企业部署场景。 如何从 PDF 文件中提取文本? IronPDF的ExtractAllText方法可以即时访问PDF文档中的所有文本内容。 此方法处理各种文本编码,并保持原始文档的阅读顺序,确保在 ASP.NET Core 应用程序中准确提取 PDF 文件中的数据。 提取过程是线程安全的,并针对高性能场景进行了改进。 它支持国际语言的UTF-8编码。 // 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 $vbLabelText $csharpLabel ExtractAllText方法返回一个字符串,其中包含 PDF 中的所有可读文本,并保留换行符和空格。 对于页面特定的提取, ExtractTextFromPage允许使用从零开始的索引来定位单个页面。 当您提供正确的密码时,此方法可以顺利地用于加密 PDF 文件。 文本提取支持UTF-8编码和国际语言。 您还可以解析特定区域或使用PDF DOM 对象进行更精细的控制。 以下是一个实用的 ASP.NET Core 控制器实现,演示了如何使用最少的内存分配从 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 }); } } $vbLabelText $csharpLabel 此示例代码有效处理上传的 PDF 文件。 IFormFile 参数可与Razor Pages或MVC 控制器配合使用,而MemoryStream则可确保流畅处理,无需创建临时文件,从而最终提升响应速度。您可以下载、保存或处理提取的文本,以便将其存储到数据库、生成报告或使用响应式 HTML 渲染在浏览器中显示内容。 考虑实现异步模式以提高可扩展性,并采用自定义日志记录来监控提取操作。 对于Blazor Server应用程序,同样的方法也适用,只需对组件模型进行一些小的调整即可。 如何读取 PDF 表单数据? PDF 表单包含用户填写的交互字段。 IronPDF 通过其完整的表单 API 简化了表单数据的提取,支持所有标准的AcroForm字段类型。您可以轻松提取所有表单字段数据,包括文本框、复选框和内容类型详细信息。 该库可自动处理数字签名和表单验证。 它还支持符合 PDF/A归档要求和第 508 条无障碍标准。 然后可以将响应保存到数据库、返回给用户或集成到您的 ASP.NET 应用程序工作流中。 对于Azure 部署,请考虑使用Blob 存储来存储处理后的表单数据。 以下代码示范了如何做到这一点: [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 }); } $vbLabelText $csharpLabel ExtractForm端点使用PdfDocument的 Form 属性从上传的 PDF 中读取交互式字段。 每个字段都有一个名称和值,这些值被收集到字典中并作为 JSON 返回。 这使得可以轻松捕获文本框、复选框和其他输入的数据,允许 PDF 表单提交被直接处理和集成到您的应用程序或数据库中。 如需自定义记录表单处理事件日志,请与您首选的日志框架集成。 您还可以将表单展平以防止进一步编辑,或以编程方式添加新的表单字段。 为什么表单提取结果会返回 JSON 格式? API 响应显示从 PDF 表单中提取的 JSON 数据,其中包含姓名、电子邮件和地址字段,并在 Postman 测试界面中显示,状态码为 200 OK。 JSON 格式确保与现代 Web API 和微服务架构兼容。 这种标准化格式可以与RESTful 服务、消息队列和云存储解决方案无缝协作。 轻量级结构最大限度地减少了分布式系统中的网络开销。 它也非常适合AJAX 请求和Angular 应用程序。 该格式支持异步操作,并且与OpenAI 集成良好,可用于智能文档处理。 如何从 PDF 文档中提取表数据? PDF 中的表格本质上是格式化的文本,需要解析逻辑来提取结构化数据。 IronPDF 可以提取文本并保留间距,然后您可以在 ASP.NET 中解析这些文本以从 PDF 文件中读取数据。 对于复杂的表格,可以考虑使用DOM 对象访问以编程方式访问文档结构。 该库能够处理多列布局,并在提取过程中保留字体格式: [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 }); } $vbLabelText $csharpLabel 该代码提取文本并根据间距模式将其拆分为可能的表行。 对于更复杂的表格,您可能需要使用关键字识别表格边界或根据您的特定 PDF 结构实施更复杂的解析逻辑。 对于包含多个表格的大型文档,可以考虑使用并行处理。 您还可以将表格转换为 HTML 格式以便于操作,或导出到 Excel进行进一步分析。 此输出可以下载、在浏览器中显示或进行其他信息处理。 您可以集成CSS 格式化或HTML 字符串渲染,以便在您的解决方案中动态显示表格。 对于高性能应用场景,缓存已解析的表数据以避免重复处理。 在存储提取的数据时,考虑使用压缩技术来减小文件大小。 何时应该手动解析表格,何时应该使用内置方法? API 响应显示从 PDF 中提取的结构化发票数据,包括客户详细信息、发票元数据和包含价格的明细产品(JSON 格式) 。 手动解析为非标准表格格式提供了灵活性,而内置方法为标准布局提供了更好的性能。 处理合并单元格、嵌套表格或自定义格式时,请选择手动解析。 使用内置提取功能提取具有一致列间距的标准表格数据。 对于复杂的布局,可以考虑使用JavaScript进行预处理或使用自定义渲染选项。 Chrome渲染引擎可确保大多数表格格式的文本定位准确。 如何在 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 }); } $vbLabelText $csharpLabel 此异步任务可确保非阻塞处理,并可与事件处理程序和标准 .NET 库配合使用。 使用带有 Content-Disposition 标头的ReturnFile可以让用户安全地下载已处理的 PDF 文件。 为了增加安全性,请考虑在处理之前实施文件验证。 异步模式提高了云部署的可扩展性。 您还可以在处理过程中添加自定义水印或数字签名。 对于MAUI 应用程序,类似的模式也适用,但需要根据平台进行调整。 如何提高文件上传性能? 对大文件实施流式上传,以减少内存占用。 在 IIS 设置或Kestrel 配置中配置适当的请求大小限制。 对于AWS Lambda 部署,请考虑使用预签名的 S3 URL 进行直接上传,完全绕过您的 API。 对于 JavaScript 密集型内容,请使用渲染延迟;对于大型文档,请使用自定义超时。 启用线性化以加快网页浏览速度,并实现渐进式渲染以获得更好的用户体验。 在无服务器环境中,可考虑使用IronPdf.Slim来减小部署体积。 PDF数据提取的下一步是什么? IronPDF 使在 ASP.NET Core 和其他 .NET Core 应用程序中读取、提取、处理和保存 PDF 文档变得容易。 无论您是处理表单、表格、纯文本还是数字签名,这个 .NET 库都能将通常需要数小时才能完成的任务简化为几行代码。 您可以创建、转换、访问和显示HTML 、浏览器甚至图像格式的输出。 该图书馆支持PDF/A 合规性,可进行长期存档,并符合第 508 条款无障碍标准。 对于生产环境部署,请考虑实施健康检查端点来监控 PDF 处理服务。 使用自定义日志记录来跟踪提取性能和错误。 实现分布式系统中处理瞬态故障的重试策略。 配置渲染选项以获得最佳性能,并对经常访问的文档实施缓存策略。 该库与CI/CD 流水线集成良好,并支持服务器环境下的无头渲染。 首先进行免费试用,探索 IronPDF 在 ASP.NET Core 项目中的全部功能。 在承诺购买许可证之前,您可以构建和测试您的PDF提取工作流。 对于生产环境,IronPDF 提供灵活的许可选项,适合个人开发者或大型团队。 该库支持容器化部署,并为团队提供完整的文档。 使用 IronPDF 是在 ASP.NET Core 中处理 PDF 文件的最快方法之一,而且不会像通常那样出现部署方面的麻烦。 查看快速入门指南以立即实施,或探索OCR 功能和条形码生成等高级功能,以获得完整的文档处理解决方案。 常见问题解答 在 .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 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。 相关文章 已更新2026年1月22日 如何使用 IronPDF 在 .NET 中创建 PDF 文档:完整指南 发现为开发人员创建PDF文件的有效方法。提升您的编码技能并简化您的项目。立即阅读文章! 阅读更多 已更新2026年1月21日 如何在 VB.NET 中合并 PDF 文件:完整教程 使用IronPDF合并PDF VB NET。学习使用简单的VB.NET代码将多个PDF文件合并为一个文档。包括逐步示例。 阅读更多 已更新2026年1月21日 C# PDFWriter 教程:在 .NET 中创建 PDF 文档 使用这份逐步指南了解如何高效地使用C# PDFWriter创建PDF。阅读文章提升您的技能! 阅读更多 C# PDFWriter 教程:在 .NET 中创建 PDF 文档如何创建 Blazor PDF 查看器...
已更新2026年1月21日 如何在 VB.NET 中合并 PDF 文件:完整教程 使用IronPDF合并PDF VB NET。学习使用简单的VB.NET代码将多个PDF文件合并为一个文档。包括逐步示例。 阅读更多