如何在 C# 中将结果保存为可搜索的 PDF

使用 IronOCR 在 C# 中保存可搜索 PDF

This article was translated from English: Does it need improvement?
Translated
View the article in English

可搜索的 PDF,通常被称为 OCR(光学字符识别)PDF,是一种包含扫描图像和机器可读文本的 PDF 文档。 这些 PDF 文件是通过对扫描的纸质文档或图像执行 OCR 功能创建的,它可以识别图像中的文本,并将其转换为可选择和可搜索的文本。

IronOCR 提供了一种解决方案,可以对文档执行光学字符识别,并将结果导出为可搜索的 PDF 文件。 它支持将可搜索的 PDF 导出为文件、字节和流。

快速入门:一行导出可搜索的 PDF

设置RenderSearchablePdf = true ,对输入运行Read(...) ,然后调用SaveAsSearchablePdf(...) ——这就是使用 IronOCR 生成完全可搜索 PDF 的全部步骤。

Nuget Icon立即开始使用 NuGet 创建 PDF 文件:

  1. 使用 NuGet 包管理器安装 IronOCR

    PM > Install-Package IronOcr

  2. 复制并运行这段代码。

    new IronOcr.IronTesseract { Configuration = { RenderSearchablePdf = true } } .Read(new IronOcr.OcrImageInput("file.jpg")).SaveAsSearchablePdf("searchable.pdf");
  3. 部署到您的生产环境中进行测试

    立即开始在您的项目中使用 IronOCR,免费试用!
    arrow pointer


导出为可搜索 PDF 示例

以下是如何使用 IronOCR 将结果导出为可搜索的 PDF 文件。 您必须首先将Configuration.RenderSearchablePdf属性设置为true 。 通过Read方法获取 OCR 结果对象后,使用SaveAsSearchablePdf方法指定输出文件路径。 以下代码演示了如何使用示例 TIFF 文件。

:path=/static-assets/ocr/content-code-examples/how-to/searchable-pdf-searchable-pdf.cs
using IronOcr;

// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();

// Enable render as searchable PDF
ocrTesseract.Configuration.RenderSearchablePdf = true;

// Add image
using var imageInput = new OcrImageInput("Potter.tiff");
// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);

// Export as searchable PDF
ocrResult.SaveAsSearchablePdf("searchablePdf.pdf");
Imports IronOcr

' Instantiate IronTesseract
Private ocrTesseract As New IronTesseract()

' Enable render as searchable PDF
ocrTesseract.Configuration.RenderSearchablePdf = True

' Add image
Dim imageInput = New OcrImageInput("Potter.tiff")
' Perform OCR
Dim ocrResult As OcrResult = ocrTesseract.Read(imageInput)

' Export as searchable PDF
ocrResult.SaveAsSearchablePdf("searchablePdf.pdf")
$vbLabelText   $csharpLabel

下面显示的是示例 TIFF 文件的屏幕截图以及嵌入的可搜索 PDF 文件。 尝试选中 PDF 中的文本,以确认其可搜索性。 选择功能还意味着可以在 PDF 查看器中搜索文本。

IronOCR 使用特定字体将文本叠加到图像文件上,这可能会导致文本大小出现一些差异。

TIFF 文件

导出为已应用筛选条件的可搜索 PDF

SaveAsSearchablePdf还接受一个布尔标志作为第二个参数,允许您对可搜索的 PDF 应用过滤器或不应用过滤器,从而为开发人员提供选择的灵活性。

下面是一个应用灰度,然后通过在SaveAsSearchablePdf的第二个参数中设置true来保存带有过滤器的 PDF 的示例。

:path=/static-assets/ocr/content-code-examples/how-to/image-quality-correction-searchable-pdf.cs
using IronOcr;

var ocr = new IronTesseract();
var ocrInput = new OcrInput();

// Load a PDF file
ocrInput.LoadPdf("invoice.pdf");

// Apply gray scale filter
ocrInput.ToGrayScale();
OcrResult result = ocr.Read(ocrInput);

// Save the result as a searchable PDF with filters applied
result.SaveAsSearchablePdf("outputGrayscale.pdf", true);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

可搜索的 PDF 文件(字节流和数据流)

也可以分别使用SaveAsSearchablePdfBytesSaveAsSearchablePdfStream方法将可搜索 PDF 的输出作为字节或流进行处理。 下面的代码示例展示了如何使用这些方法。

:path=/static-assets/ocr/content-code-examples/how-to/searchable-pdf-searchable-pdf-byte-stream.cs
// Export searchable PDF byte
byte[] pdfByte = ocrResult.SaveAsSearchablePdfBytes();

// Export searchable PDF stream
Stream pdfStream = ocrResult.SaveAsSearchablePdfStream();
' Export searchable PDF byte
Dim pdfByte() As Byte = ocrResult.SaveAsSearchablePdfBytes()

' Export searchable PDF stream
Dim pdfStream As Stream = ocrResult.SaveAsSearchablePdfStream()
$vbLabelText   $csharpLabel

常见问题解答

什么是可搜索的PDF?

可搜索的PDF是通过对扫描文档或图像进行OCR而生成的兼有扫描图像和可机读文本的文档,允许用户选择和搜索文件中的文本。

如何在C#中将扫描的文档转换为可搜索的PDF?

要使用 C# 将扫描的文档转换为可搜索的 PDF,请使用 IronOCR,将 Configuration.RenderSearchablePdf 属性设置为 true,执行 OCR 通过 Read 方法,然后使用 SaveAsSearchablePdf 保存输出。

我可以将可搜索的PDF导出为字节或流吗?

是的,IronOCR 允许使用 SaveAsSearchablePdfBytes 导出可搜索的 PDF 为字节,使用 SaveAsSearchablePdfStream 导出为流。

如何处理不同文件格式以进行OCR处理?

IronOCR支持TIFF等多种文件格式以进行OCR处理,允许从这些格式创建可搜索的PDF。

使用OCR技术创建的可搜索PDF中可以选择和搜索文本吗?

可以,使用IronOCR技术创建的可搜索PDF允许在PDF查看器中选择和搜索文本。

使用OCR创建可搜索PDF的步骤是什么?

这些步骤包括下载 IronOCR C# 库,准备文档进行 OCR,将 RenderSearchablePdf 属性设置为 true,并使用 SaveAsSearchablePdf 方法保存文件。

如何确保我的PDF文件中的文本是可搜索的?

确保文本可搜索,通过使用 IronOCR 对图像执行 OCR,并在保存文档之前将 RenderSearchablePdf 属性设置为 true。

IronOCR使用具体字体作为可搜索的PDF覆盖文本吗?

是的,IronOCR在图像文件上的覆盖文本使用具体字体,可能会导致文本大小出现差异。

Chaknith Bin
软件工程师
Chaknith 在 IronXL 和 IronBarcode 工作。他在 C# 和 .NET 方面有着深厚的专业知识,帮助改进软件并支持客户。他从用户互动中获得的见解有助于更好的产品、文档和整体体验。
审核者
Jeff Fritz
Jeffrey T. Fritz
首席项目经理 - .NET 社区团队
Jeff 也是 .NET 和 Visual Studio 团队的首席项目经理。他是 .NET Conf 虚拟会议系列的执行制片人,并主持“Fritz and Friends”直播节目,每周两次与观众一起谈论技术并编写代码。Jeff 撰写研讨会、演示文稿并计划包括 Microsoft Build、Microsoft Ignite、.NET Conf 和 Microsoft MVP 峰会在内的最大型微软开发者活动的内容。
准备开始了吗?
Nuget 下载 5,167,857 | Version: 2025.11 刚刚发布