尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
LEADTOOLS 使用OCR将图像转换为可搜索PDF - C DLL
使用 OCR 将图像转换为可搜索的 PDF - Windows C DLL本教程展示了如何使用 Windows C DLL 应用程序中的 LEADTOOLS SDK 设置 OCR 处理将任何受支持的文件转换为可搜索的 PDF。概述概括本教程演示如何在 Windows C DLL 应用程序中加载、识别和保存 OCR 数据到 PDF。完成时间20分钟Visual Studio 项目下载教程项目19 KB平台Windows C DLL 应用程序集成开发环境Visual Studio 2019、2022开发许可证下载 LEADTOOLS尝试用其他语言C#. NET 6控制台、. NET 6WinFormsSwiftmacOS 控制台C APIC DLLWindowsJava Java所需知识在开始本教程之前请先查看“添加引用和设置许可证”以及“加载、显示和保存图像”教程熟悉创建项目和加载图像的基本步骤。创建项目并添加 LEADTOOLS 引用首先请使用“加载、显示和保存图像”教程中创建的 64 位 Windows API 项目副本。如果该项目不存在请按照该教程中的步骤创建它。要使用 LEADTOOLS OCR 功能需要额外的头文件和 DLL 文件。打开预编译的头文件并添加以下代码行根据所使用的 Visual Studio 版本添加 headpch.h或DLLstdafx.h#include C:\LEADTOOLS23\Include\ltocr.h #pragma comment (lib, C:\\LEADTOOLS23\\Lib\\CDLL\\x64\\Ltocr_x.lib) // OCR support设置许可证文件许可证用于解锁项目所需的功能。必须在调用任何工具包函数之前设置许可证。有关详细信息包括不同平台的教程请参阅“设置运行时许可证”。运行时许可证有两种类型评估许可证在下载评估工具包时获得。它允许对工具包进行评估。部署许可证。如果需要部署许可证文件和开发者密钥请参阅“获取许可证”部分。添加 OCR 代码项目创建完毕参考资料添加完毕许可证设置完毕加载文件代码添加完毕就可以开始编码了。添加一个包含新菜单项的新菜单在“文件”菜单旁边添加一个新的“OCR”菜单。在新增的OCR菜单下添加“识别并导出结果”菜单项。新菜单项的 ID 应为ID_OCR_RECOGNIZEANDEXPORTRESULTS。笔记有关如何在 Visual Studio 2022 中添加菜单项的详细信息请参阅“加载、显示和保存图像”教程。有关特定工具包功能或文件格式所需的 DLL 的完整列表请参阅“应用程序中包含的文件”。有关 LEADTOOLS OCR 模块文件的详细信息请参阅LEAD Engine Runtime Redistributables。打开项目的 CPP 文件并在顶部的全局变量部分添加以下声明。// OCR Global Variables: L_OcrEngine ocrEngine NULL;L_OcrDocument ocrDocument NULL;L_OcrPage ocrPage NULL; L_OcrDocumentManager ocrDocumentManager NULL;转到该InitInstance函数并在 LEADTOOLS 设置许可证代码下方添加以下初始化代码if ((SUCCESS ! L_OcrEngineManager_CreateEngine(L_OcrEngineType_LEAD, ocrEngine)) || (SUCCESS ! L_OcrEngine_Startup(ocrEngine, NULL, TEXT(C:\\LEADTOOLS23\\Bin\\Common\\OcrLEADRuntime)))|| (SUCCESS ! L_OcrEngine_GetDocumentManager(ocrEngine, ocrDocumentManager))){MessageBox(NULL, TEXT(Error initializing OCR..\nAborting), TEXT(LEADTOOLS Demo), MB_ICONERROR);return FALSE; }找到该WndProc函数并修改 case 下的代码ID_FILE_OPEN。在函数调用下方紧接着添加以下代码L_LoadBitmap()if(LEADBmp.Flags.Allocated) {if(ocrDocument)L_OcrDocument_Destroy(ocrDocument);ocrDocument NULL;ocrPage NULL;L_OcrDocumentManager_CreateDocument(ocrDocumentManager, ocrDocument, L_OcrCreateDocumentOptions_AutoDeleteFile, NULL);L_OcrPage_FromBitmap(ocrEngine, ocrPage, LEADBmp, L_OcrBitmapSharingMode_None, NULL, NULL); }接下来修改WM_DESTROYcase 代码并在调用之前添加以下几行PostQuitMessage()。if (ocrDocument) L_OcrDocument_Destroy(ocrDocument);if (ocrEngine)L_OcrEngine_Destroy(ocrEngine);在case语句下方的WndProc函数中添加一个新的 caseswitch (wmId)WM_COMMANDswitch (wmId) {case ID_OCR_RECOGNIZEANDEXPORTRESULTS:{if (!LEADBmp.Flags.Allocated){MessageBox(hWnd, TEXT(Cannot perform OCR. No image loaded), TEXT(LEADTOOLS Demo), MB_ICONERROR);break;}OcrAndSaveResult(hWnd);break;} // Keep rest of the code as is创建一个名为 new function 的新函数OcrAndSaveResult并将其放在现有WndProc函数上方。将以下代码添加到新函数中。void OcrAndSaveResult(HWND hwnd) {if (!ocrEngine || !ocrDocument || !ocrPage){MessageBox(hwnd, TEXT(OCR Engine not properly initialized), TEXT(LEADTOOLS OCR Demo), MB_OK);return;}L_OcrLanguageManager languageManager NULL;L_OcrLanguage langs[] { L_OcrLanguage_EN };const TCHAR* outputFile TEXT(C:\\Temp\\output.pdf);L_OcrEngine_GetLanguageManager(ocrEngine, languageManager);L_OcrLanguageManager_EnableLanguages(languageManager, langs, _countof(langs));// Try to recognize the text in the documentL_OcrPage_Recognize(ocrPage, NULL, NULL);// Add the created OCR page into the file-based OCR documentL_OcrDocument_AddPage(ocrDocument, ocrPage);TCHAR message[1024];if (L_OcrDocument_Save(ocrDocument, outputFile, DOCUMENTFORMAT_PDF, NULL, NULL) SUCCESS)wsprintf(message, TEXT(OCR succeeded and result saved to %s), outputFile);elsewsprintf(message, TEXT(OCR failed));MessageBox(hwnd, message, TEXT(LEADTOOLS OCR Demo), MB_OK); }运行项目按F5运行项目或者选择“调试”-“开始调试”。如果步骤正确应用程序应该可以运行并允许用户选择“文件”-“打开”来加载要进行 OCR 识别的文件。在本例中我们将使用此扫描文档。选择“OCR”-“识别并导出结果”应用程序将对输入文件运行 OCR并将结果输出到可搜索的 PDF 文件C:\Temp\output.pdf以下是原始扫描文档的预期输出输出 PDF本教程介绍了如何创建一个 C Windows API OCR 应用程序该应用程序接受一个输入文件并导出为可搜索的 PDF。
RELATED

相关推荐

贪心算法解决LeetCode糖果分配问题详解

贪心算法解决LeetCode糖果分配问题详解

1. 问题背景与核心挑战LeetCode 135题"分发糖果"是一个经典的贪心算法应用题,它模拟了实际生活中按规则分配有限资源的情境。题目要求在一排孩子中根据他们的评分来分配糖果,同时满足两个基本约束条件:每个孩子至少分配到1个糖果评…

📅 2026/10/6 13:50:51
AI编程助手对比:Codex与Claude Code的本质区别与应用场景

AI编程助手对比:Codex与Claude Code的本质区别与应用场景

1. 从一场“关公战秦琼”的争论说起最近在几个技术社区和社群里,看到不少关于“Codex vs Claude Code”的讨论。标题往往是“哪个代码生成能力更强?”、“哪个更适合程序员日常使用?”,甚至还有“实测对比:Codex和Clau…

📅 2026/10/16 0:01:27
理性评估Google技术实力:从AI基础设施到工程能力的深度分析

理性评估Google技术实力:从AI基础设施到工程能力的深度分析

1. 先别急着下结论:Google的“衰落”论调里,我们忽略了什么每次看到“Google不行了”、“搜索已死”这类标题,我都会先问自己一个问题:我们是不是在用衡量一个初创公司的标准,去评判一个已经运行了二十多年、服务全球数…

📅 2026/10/5 19:50:31
MORE NEWS

更多资讯

📰

sunnypilot 新手安装实战:从 Ubuntu 24.04 到首次点亮

sunnypilot 新手安装实战:从 Ubuntu 24.04 到首次点亮 【免费下载链接】sunnypilot sunnypilot is an open source driver assistance system. sunnypilot offers the user a unique driving experience for over 350 supported car makes and models with modified…

📰

利刃混剪:小说推文视频混剪去重,视频混剪高效去重技术分析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

【信息科学与工程学】【金融工程】【财务领域】【会计领域】第四十七篇 产品定价_非寿险01——健康保险定价及管理相关的精算模型与方法02

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

如何基于Ministral-3-14B-Base-2512-6bit微调出你的垂直领域视觉语言模型?后训练完整路径

【免费下载链接】Ministral-3-14B-Base-2512-6bit 项目地址: https://ai.gitcode.com/hf_mirrors/mlx-community/Ministral-3-14B-Base-2512-6bit 点击查看 免费下载 本文带你一步步用 Ministral-3-14B-Base-2512-6bit(一个 6-bit 量化的 140 亿参数视觉…

📰

MIT协议免费商用:Ming-Image-0.1-Design-Layer开源许可、inclusionAI生态与社区支持

人工智能大模型媒体生成多模态 【免费下载链接】Ming-Image-0.1-Design-Layer 项目地址: https://ai.gitcode.com/hf_mirrors/inclusionAI/Ming-Image-0.1-Design-Layer 点击查看 免费下载 Ming-Image-0.1-Design-Layer 是 inclusionAI 开源的图像分层设计模型&…

📰

从 20 个图标到 5 个:Ice 菜单栏管理新手完整指南

从 20 个图标到 5 个:Ice 菜单栏管理新手完整指南 【免费下载链接】Ice Powerful menu bar manager for macOS 项目地址: https://gitcode.com/GitHub_Trending/ice/Ice 菜单栏堆了二十几个图标,蓝牙和 Wi-Fi 还被刘海挡掉一半——这是很多 MacBo…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬