DocCore VisionOCR SDK 开发教程

从安装到集成,完整覆盖 DocCore 和 VisionOCR SDK 在 .NET 项目中的使用。

1. 安装 SDK

环境要求

  • 运行时:.NET 6、.NET 8 或 .NET Framework 4.8
  • 平台:Windows x64
  • IDE:Visual Studio 2022+ 或 JetBrains Rider

通过 NuGet 安装

// Package Manager Console
Install-Package DocCore.SDK
Install-Package VisionOCR.SDK

// 或 .NET CLI
dotnet add package DocCore.SDK
dotnet add package VisionOCR.SDK
提示:DocCore 和 VisionOCR 可独立安装。如果只需要 PDF 处理能力,只装 DocCore.SDK 即可;如果只需要 OCR,只装 VisionOCR.SDK。

2. 授权激活

SDK 为商业授权产品,使用前需要激活授权。

在线激活

using SdkLicensing.Client;

// 使用授权 Key 激活
var manager = new LicenseManager();
var result = await manager.ActivateAsync("YOUR-LICENSE-KEY");

if (result.IsSuccess)
{
  Console.WriteLine("授权激活成功");
}

授权类型

  • 试用授权 — 30 天免费试用,功能完整
  • 单设备授权 — 绑定单台设备,永久有效
  • 订阅授权 — 按年订阅,支持多台设备

3. PDF 文档加载

DocCore SDK 提供简洁的 API 来加载和操作 PDF 文档。

using DocCore.Abstractions.Documents;

// 加载 PDF 文档
var doc = PdfDocument.Load("投标文件.pdf");

// 获取文档信息
Console.WriteLine($"总页数: {doc.PageCount}");

// 获取页面信息
var page = doc.Pages[0];
Console.WriteLine($"页面大小: {page.Width} x {page.Height}");

// 使用完毕后释放
doc.Dispose();
提示:PdfDocument 实现了 IDisposable 接口,推荐使用 using 语句确保资源正确释放。

4. 文本提取与搜索

提取全文文本

using var doc = PdfDocument.Load("document.pdf");

// 提取整个文档的文本
var allText = doc.ExtractText();

// 提取特定页面的文本
var pageText = doc.Pages[0].ExtractText();

关键字搜索

using var doc = PdfDocument.Load("投标文件.pdf");

// 在文档中搜索关键字
var results = doc.Search("项目名称");

foreach (var r in results)
{
  Console.WriteLine($"第{r.PageIndex+1}页, 位置: ({r.X}, {r.Y})");
}

5. OCR 基础识别

VisionOCR SDK 提供开箱即用的 OCR 文字识别能力。

using VisionOCR.Abstractions.Core;

// 初始化 OCR 引擎
var engine = new OcrEngine();
engine.Initialize();

// 识别图片中的文字
var result = engine.Recognize("扫描件.png");

// 输出识别结果
Console.WriteLine(result.Text);
Console.WriteLine($"置信度: {result.Confidence:P}");

// 获取逐行结果
foreach (var line in result.Lines)
{
  Console.WriteLine($"{line.Text} (置信度: {line.Confidence:P})");
}

支持的图片格式

  • PNG、JPG/JPEG、BMP、TIFF
  • 支持 PDF 页面渲染后识别(配合 DocCore 使用)

6. 表格检测

VisionOCR 内置表格结构检测能力,可自动识别图片中的表格并提取单元格内容。

var engine = new OcrEngine();
engine.Initialize();

// 启用表格检测
var options = new OcrOptions { DetectTables = true };
var result = engine.Recognize("表格文档.png", options);

// 遍历检测到的表格
foreach (var table in result.Tables)
{
  Console.WriteLine($"表格: {table.Rows}行 x {table.Columns}列");
  foreach (var cell in table.Cells)
  {
    Console.WriteLine($" [{cell.Row},{cell.Col}] {cell.Text}");
  }
}

7. 进阶用法

DocCore + VisionOCR 联合使用

将 PDF 页面渲染为图片后进行 OCR 识别,适用于扫描件 PDF。

using var doc = PdfDocument.Load("扫描件.pdf");
var engine = new OcrEngine();
engine.Initialize();

foreach (var page in doc.Pages)
{
  // 渲染页面为图片
  var image = page.Render(dpi: 300);

  // OCR 识别
  var result = engine.Recognize(image);
  Console.WriteLine($"第{page.Index+1}页: {result.Text}");
}

图像预处理

VisionOCR 内置图像预处理管线,可自动优化图片质量以提高识别准确率。

var options = new OcrOptions
{
  Preprocessing = PreprocessingMode.Auto, // 自动预处理
  Language = "chi_sim+eng", // 中英文混合
  Dpi = 300 // 目标 DPI
};

8. 常见问题

OCR 识别准确率低怎么办?

确保输入图片分辨率不低于 200 DPI(推荐 300 DPI),启用自动预处理 PreprocessingMode.Auto,并确认语言设置与文档内容匹配。

能在 ASP.NET Core 服务端使用吗?

可以。SDK 支持在服务端环境运行。注意需要部署到 Windows x64 服务器,并确保服务器已安装 VC++ 运行时。

PDF 加载很慢怎么办?

对于大型 PDF(数百页),建议使用异步加载 PdfDocument.LoadAsync(),避免阻塞 UI 线程。文本提取和搜索是逐页执行的,可以按需处理。

如何处理加密的 PDF?

DocCore 支持加载有密码保护的 PDF:PdfDocument.Load("file.pdf", password: "xxx")。如果 PDF 仅限制了打印/编辑权限但未设密码,则可直接加载。

DocCore OCR处理流程