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

前言

因为在弄文件编辑这快,最高性能基本都是使用c++的pdfium库实现,今天这篇是使用win系统运行的,后面是wasm(对接进浏览器),在后面可能会对接安卓

开始

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

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

演示效果

项目架构

main.cpp

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

cpp 复制代码
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 命令窗口

cpp 复制代码
生成工程【修改CMakeLists.txt】
cmake -B build

编译
cmake --build build --config Debug
相关推荐
死磕音视频8 小时前
让小模型做选择题:限定候选项并读取 logits 概率的入门实践(附 Python 代码)
开发语言·python·大模型·文本分类·transformers
WL学习笔记10 小时前
C & C++ 内存管理
c++·c++内存管理
顽疲10 小时前
Java vue 养老系统源码详解:月账单 care_month_bill 与 Quartz 扣费 Job 实践
java·开发语言·vue.js·vue养老·springboot养老·java养老
Wang's Blog10 小时前
Java 项目实战: 交友项目 - 安装开发工具与环境准备
java·开发语言·交友
宛 禾12 小时前
Qt 控件入门:QLabel 从拖拽到对象树,一篇讲透
c++·qt·学习
hetao173383712 小时前
联盟场-提高组-R7 & ZYZSC-S-Round 11
c++·算法
程序喵大人12 小时前
【C++入门】编译链接模型 - 07 链接器怎样把符号对上号
开发语言·c++·编译器·编译链接·链接器
微三云 - 廖会灵 (私域系统开发)12 小时前
供应链系统实战:多渠道订单聚合与分布式库存一致性方案总结
开发语言·分布式·php
局部有解13 小时前
Hot100 - 三数之和
数据结构·c++·算法
学逆向的13 小时前
C 数据溢出与精度丢失
c语言·开发语言·网络安全