当前位置: 首页 > news >正文

c++对接pdfium(一)win系统篇

前言

因为在弄文件编辑这快,最高性能基本都是使用c++的pdfium库实现,今天这篇是使用win系统运行的

开始

环境安装介绍(建议走AI进行安装),硬盘要够大,估摸整体要30GB多

  1. 要先安装Visual Studio工具
  2. git 克隆depot_tools工具
  3. 下载PDFium源码
  4. 开始编写C++代码

最新版本的PDFium,支持(win/linux/android/ios),wasm建议使用rust进行开发。

GN:负责「生成编译配置」
Ninja:负责「执行编译任务

gn gen out\Debug 生成目录 # 可不用 gn args out\Debug 编写配置 编译生成pdfium.dll(动态库) ninja -C out\Debug -j4 pdfium

演示效果

项目架构

main.cpp

#include <iostream> #include "public/fpdfview.h" int main() { std::cout << "PDFium Test Start\n"; FPDF_InitLibrary(); FPDF_DOCUMENT doc = FPDF_LoadDocument("ebook.pdf", nullptr); if(!doc){ std::cout<<"open failed"; return -1; } int pages = FPDF_GetPageCount(doc); std::cout<<"pages:"<<pages<<std::endl; FPDF_CloseDocument(doc); FPDF_DestroyLibrary(); return 0; }

CMakeLists.txt

cmake_minimum_required(VERSION 3.20) project(pdfium_demo) set(PDFIUM_DIR D:/code/c++/pdfium) add_executable( pdfium_demo main.cpp ) target_include_directories(pdfium_demo PRIVATE ${PDFIUM_DIR} ) target_link_directories(pdfium_demo PRIVATE ${PDFIUM_DIR}/out/Debug ) target_link_libraries(pdfium_demo pdfium.dll.lib )

使用 Developer Command Prompt for VS 命令窗口

生成工程【修改CMakeLists.txt】 cmake -B build 编译 cmake --build build --config Debug
http://www.jsqmd.com/news/1265979/

相关文章:

  • 开源AI编程助手Claude Code核心功能与技术解析
  • 终极指南:如何通过开源工具Wand-Enhancer实现专业版功能解锁
  • 寄行李箱用什么快递最便宜? - 快递物流资讯
  • 为什么有些EVA箱包用久了会“长皱纹”?
  • AI时代如何保持技术自主性:从认知到实践
  • 测试工程师面试题,你都遇到过哪些呢?
  • 华中厂房塑料模板加工厂哪家合作案例多:精选 - 品牌推广大师
  • Fast DDS架构解析:C++设计模式与高性能通信的工程实践
  • 从curl到工程封装:名人名言API的调用与集成实践
  • YOLOv5在农业植物检测中的优化与应用实践
  • 3分钟掌握PKHeX-Plugins:宝可梦数据管理的终极神器
  • C++实现NCC模板匹配:从原理到工程优化的完整指南
  • 2026嘉兴装修公司推荐手册 本地优质整装品牌甄选合集 - 资讯报道
  • MacOS本地AI Agent工作流搭建指南
  • AM261x MCAN与安全机制:从CAN FD通信到OTFA/ECCM数据保护实战
  • CoPaw智能体工作台:低门槛构建AI助理的实践指南
  • HDOWS开源网盘部署指南:真免费自建云存储与WebDAV实践
  • 具身导航技术:从Seq2Seq到世界模型的演进与实践
  • 资深工程师实战:LLM在代码生成与文档优化中的工程应用
  • TI McASP接收路径寄存器配置详解:从I2S到TDM的音频数据流控制
  • OpenClaw:物理感知计算机视觉的工业实践
  • C++高效生成16位随机数字字符串:从rand()到线程安全实现
  • MySQL启动失败排查与InnoDB数据恢复实战
  • 基于GPT-5.4的AI办公自动化系统实现方案
  • 第二讲:常见操作符和类型转换
  • 连通组件分析
  • AM62L硬件防火墙配置实战:CBASS区域寄存器详解与内存保护
  • Kubernetes动态存储管理:NFS Subdir Provisioner实践指南
  • 上市公司政府采购DID(2000-2025)
  • 我是如何从功能测试成功转岗测试开发的?记录下我的面试经验