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
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("授权激活成功");
}
// 使用授权 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();
// 加载 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();
// 提取整个文档的文本
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})");
}
// 在文档中搜索关键字
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})");
}
// 初始化 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}");
}
}
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}");
}
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
};
{
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 仅限制了打印/编辑权限但未设密码,则可直接加载。