PaddleOCR-json是一个基于 PaddleOCR v2.6 及 v2.8 cpp_infer 的离线图片OCR文字识别程序,可快速让你的程序拥有OCR能力。它可以作为一个子进程被上层程序调用,也可以作为一个单独的进程通过TCP调用。本项目提供了Python等语言的API,你可以无视技术细节,通过两行代码使用它。并且它是一个开源项目,允许商用,项目地址:https://github.com/hiroi-sora/PaddleOCR-json?tab=readme-ov-file
下面我们将以WINDOWS平台为例,来演示该插件的使用
首先:我们需要下载此项目在WINDOWS平台上的编译文件,https://github.com/hiroi-sora/PaddleOCR-json/releases/download/v1.4.1/PaddleOCR-json_v1.4.1_windows_x64.7z
下载完成后,我们可以把它解压放到项目的文件夹下
然后,我们打开C#对应的类库,添加客户端API,打开NUGET,搜索“PaddleOCRJson.NET .”

接着,我们在项目里新建类PaddleOCRHelp
public class PaddleOCRHelp
{
public static string _paddleOcrPath = Application.StartupPath;
public static OcrResult GetTestFromImage(string ImagePath)
{
var ret = string.Empty;
var startupArgs = OcrEngineStartupArgs.WithPipeMode($"{_paddleOcrPath}\\PaddleOCR-json_v1.4.1\\PaddleOCR-json.exe");
using (var engine = new OcrEngine(startupArgs))
{
using (var cli = engine.CreateClient()) // using var cli = new OcrClient(engine)
{
ret = cli.FromImageFile(ImagePath); // 为了避免转义(偷懒)的问题, 读入byte[]后也会转到base64.
}
}
return JsonConvert.DeserializeObject<OcrResult>(ret);
}
}
public class OcrResult
{
public int Code { get; set; }
public object Data { get; set; }
[JsonIgnore] public bool Succeed => Code == 100;
[JsonIgnore]
public OcrData[] OcrData =>
Succeed ? JsonConvert.DeserializeObject<OcrData[]>(Data.ToString()) : null;
}
public class OcrData
{
public int[][] Box { get; set; }
public double Score { get; set; }
public string Text { get; set; }
}
其中,GetTestFromImage方法的ImagePath参数是对于的图片在本地的路径,可以是相对,也可以是绝对,startupArgs里的参数,为PaddleOCR-json的执行文件,在项目里的路径
配置完成后,我们就可以在项目里使用了
var ImageResult = PaddleOCRHelp.GetTestFromImage($"PaddleOCR-json_v1.4.1\\check\\{File}");
我们会得到一个OcrData数组,Text就是对应的文字识别结果