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

叫人做国外公司网站让老外做好还是国内人做好综合门户型网站有哪些

叫人做国外公司网站让老外做好还是国内人做好,综合门户型网站有哪些,wordpress还是shopify,网站图片怎么做📚 PoDoFo 简介 PoDoFo 是一个用 C 编写的自由开源库,专用于 读取、写入和操作 PDF 文件。它适用于需要程序化处理 PDF 文件的应用程序,比如批量生成、修改、合并、提取元数据、绘图等。 🌟 核心特点 特性说明📄 P…

📚 PoDoFo 简介

PoDoFo 是一个用 C++ 编写的自由开源库,专用于 读取、写入和操作 PDF 文件。它适用于需要程序化处理 PDF 文件的应用程序,比如批量生成、修改、合并、提取元数据、绘图等。
在这里插入图片描述

🌟 核心特点

特性说明
📄 PDF 读取支持加载 PDF,读取内容流、页数、对象、元数据等
✍️ PDF 写入可创建新 PDF,添加页、文本、图片、绘图操作
📌 PDF 编辑可访问并修改 PDF 内部结构,如对象树
🔐 加密支持支持基本加密(RC4、标准 PDF 加密),但支持有限
📦 轻量依赖只依赖标准 C++ 和一些通用库(如 zlib、freetype、libjpeg)

🏗️ 技术基础

  • 语言:C++
  • 授权协议:LGPL
  • 平台:Linux / Windows / macOS
  • 主要头文件#include <podofo/podofo.h>

📦 常见用途

  1. 批量生成 PDF 报告
  2. 批量提取页数、作者、标题等元数据
  3. 根据程序逻辑创建图形、表格型 PDF
  4. 读取 PDF 对象结构进行分析或修改

⚠️ 局限性

  • 不支持 PDF 渲染(不能直接显示或截图)
  • 对于复杂加密和 PDF/A 等标准支持有限
  • 文档和社区相对较小,不如 poppler 丰富

📌 官方地址

  • GitHub 镜像(非官方): https://github.com/podofo/podofo
  • 官方网站(较旧): http://podofo.sourceforge.net/

1、安装podofo

方式1:apt安装

sudo apt install libpodofo-dev
# 确认是否安装成功
dpkg -LA libpodofo-dev

出现类似这样的路径说明没问题。
在这里插入图片描述

方式2:源码安装

git clone https://github.com/podofo/podofo.git
cd podofo
mkdir build && cd build
cmake ..
make
sudo make install

2、示例代码

下面是一个使用PoDoFo库来过滤PDF文件的示例代码。假设我们有一个目录,里面包含多个PDF文件,我们想根据某些条件(比如页数)来过滤这些文件。

2.1 main.cpp

#include <podofo/podofo.h>
#include <iostream>
#include <filesystem>
#include <vector>namespace fs = std::filesystem;void FilterPDFs(const std::string& directory, int minPages) {std::vector<std::string> filteredFiles;for (const auto& entry : fs::directory_iterator(directory)) {if (entry.is_regular_file() && entry.path().extension() == ".pdf") {try {PoDoFo::PdfMemDocument document;// std::cout<<entry.path().string()<<std::endl;document.Load(entry.path().c_str());// 获取PDF文件的页数int numPages = document.GetPageCount();if (numPages >= minPages) {filteredFiles.push_back(entry.path().string());}} catch (const PoDoFo::PdfError& e) {std::cerr << "Error processing file " << entry.path().string() << ": " << e.what() << std::endl;}}}// 输出符合条件的PDF文件std::cout << "Filtered PDF files with at least " << minPages << " pages:" << std::endl;for (const auto& file : filteredFiles) {std::cout << file << std::endl;}
}int main() {std::string directory = "/your/pdf/path/";  // 替换为你的PDF文件所在目录int minPages = 5;  // 过滤条件:至少包含5页的PDF文件FilterPDFs(directory, minPages);return 0;
}
  • PoDoFo库:这是一个C++库,用于创建、修改和解析PDF文件。在这个例子中,我们使用它来加载PDF文件并获取其页数。
  • std::filesystem:这是C++17引入的标准库,用于处理文件系统相关的操作,如遍历目录中的文件。
  • FilterPDFs函数:该函数接收一个目录路径和最小页数作为参数,遍历目录中的所有PDF文件,并根据页数进行过滤。
  • 异常处理:在加载PDF文件时可能会出现错误(例如文件损坏),因此我们使用try-catch块来捕获并处理这些错误。

2.2 CMakeLists.txt

# 指定CMake的最低版本要求
cmake_minimum_required(VERSION 3.10)# 定义项目名称和编程语言
project(PdfFilter VERSION 1.0 LANGUAGES CXX)# 设置C++标准 (例如C++17)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED True)
set(CMAKE_CXX_EXTENSIONS False)# podofo
find_library(PODOFO_LIBRARY podofo)# 添加可执行文件
add_executable(${PROJECT_NAME} main.cpp)# 如果有第三方库需要链接,可以使用target_link_libraries
target_link_libraries(${PROJECT_NAME} ${PODOFO_LIBRARY})message("🐼 ${PODOFO_LIBRARY}")

2.3 编译运行

  • 编译
mkdir build
cd build
cmake ..
-- The CXX compiler identification is GNU 13.3.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
🐼 /usr/lib/libpodofo.so
-- Configuring done (1.4s)
-- Generating done (0.0s)
-- Build files have been written to: /mnt/d/cppworkspace/PDFDemo/build
make
[ 50%] Building CXX object CMakeFiles/PdfFilter.dir/main.cpp.o
[100%] Linking CXX executable PdfFilter
[100%] Built target PdfFilter
  • 运行
./PdfFilter
  • 文件结构
.
|-- main.cpp
|-- CMakeLists.txt
|-- build
|   |-- CMakeCache.txt
|   |-- CMakeFiles
|   |-- Makefile
|   |-- PdfFilter
|   |-- cmake_install.cmake

文章转载自:

http://MgV25kSi.mtbsd.cn
http://lBrovoER.mtbsd.cn
http://mF7uCRIY.mtbsd.cn
http://7nWaXGRi.mtbsd.cn
http://nrZ2Ep2T.mtbsd.cn
http://v6VgcINf.mtbsd.cn
http://54YbuVZR.mtbsd.cn
http://41KOp2Se.mtbsd.cn
http://EGgEnrLa.mtbsd.cn
http://z3DmB9lC.mtbsd.cn
http://MzAmUfuN.mtbsd.cn
http://HIyczNqF.mtbsd.cn
http://I3OvHJmU.mtbsd.cn
http://9ntH6bC9.mtbsd.cn
http://j7dOnIN7.mtbsd.cn
http://jtuFmCyq.mtbsd.cn
http://VlsTgpF0.mtbsd.cn
http://GmQSQZsg.mtbsd.cn
http://MLoppe84.mtbsd.cn
http://gzFZf916.mtbsd.cn
http://z2P6ZCFm.mtbsd.cn
http://Ok2r5gNN.mtbsd.cn
http://kSBiHmYe.mtbsd.cn
http://GbfrylcS.mtbsd.cn
http://tqwa0gnm.mtbsd.cn
http://exW1u5J9.mtbsd.cn
http://JXZosxJj.mtbsd.cn
http://KxMaPcoy.mtbsd.cn
http://HzTWoNGr.mtbsd.cn
http://KS5Lez3r.mtbsd.cn
http://www.dtcms.com/wzjs/652411.html

相关文章:

  • 移动版网站建设的必要性怎么建设卡盟网站
  • 网站域名免费手机网站开放
  • 网站建设与维护的案例wordpress+qq微信登陆
  • 新闻列表做的最好的网站网站建设自我总结
  • 购物网站的做最新网站推广方法
  • 在线花钱做网站网站建设平台
  • 建立网站有怎么用途抖音免费推广网站
  • 免费网站推广产品东营企业网站排名
  • 我自己做网站建站平台营销
  • 手机端网站建设备案网站建设与设计方案
  • 电子商务网站建设目标分析jsp做网站步骤
  • 网站备案背景布模板制作视频免费软件
  • 河南汉狮做网站的公司北京 酒店 企业 网站建设
  • 诸暨市建设局官方网站陕西省水利厅网站建设与管理处
  • drupal网站建设网址查询网站
  • 公司网站开发报价网页端二维码在哪里
  • 香河住房和建设局网站网址转换二维码
  • 运营最好的网站哈尔滨网站制作招聘
  • 有没有做淘宝首页特效的网站聊天系统源码
  • 荆州 网站建设宁波外贸seo网站建设
  • 网站建设发专业人才培养方案手机版网站如何制作
  • 哪些网站用echarts做的国外贸易网站
  • wordpress显示一个类目长沙优化网站技术厂家
  • 重庆做网站最好的网站怎么上传到空间
  • 做网站基础教程推广网站的方式
  • 成都便宜做网站的前端学什么
  • 公司注册网站方法移动端app是什么意思
  • 艺术培训网站模板wordpress彩色美化
  • 深圳住房建设部网站建设网站增城
  • 西安网站建设缑阳建与做网站的人怎么谈判