PDFium使用分享
PDFium使用分享
- 概述
- 编译之后的头文件目录
- 初始化库以及加载文档
概述
对于PDFium的作用以及来源不做介绍,大家可以自行搜索。
使用PDFium已经有一段时间了,但是在使用中,遇到了很多的问题,首先就对于PDFium的编译都是比较困难的(原因省略),但是我这里对这个不做介绍,在github上有很多的例子以及编译好的库,可以直接使用。
但是由于PDFium的库真的很强大,我只是基于现在遇到和使用的接口和问题点进行说明,如果有新的点和问题欢迎一起讨论哦!
编译之后的头文件目录
下图就是我们编译后,include目录底下的结构:
初始化库以及加载文档
我们关注头文件 fpdfview.h的头文件。该头文件可以说是PDFium库的主头文件了。
FPDF_CALLCONV FPDF_InitLibrary();接口是必须调的,是内部的初始化工作,内部实现也就是各种类的创建等等。与该接口对应的FPDF_DestroyLibrary来释放所有的内部资源。
FPDF_LoadDocument(FPDF_STRING file_path, FPDF_BYTESTRING password);该接口是我们加载pdf文件的主接口,返回的指针,是后续很多操作的传入参数,那么肯定设置为全局或者是类的成员变量。注意与此接口对应的是必须调用FPDF_CloseDocument来释放内部资源。
其实写到这里,我们只是介绍了库的初始化以及pdf文档的加载,还没有介绍如何去加载文档的某页的信息包括内容、坐标、宽度、高度、字体、大小等信息;如何将页的信息提取出来写入到txt里面;如何将显示指定区域的信息,或者保存某些信息到新的pdf里面;如何进行搜索的功能;加印章功能;如何创建新的pdf文档等等基本功能。
特别要提出的是pdf基本是UTF-8编码为主,也会介绍如何进行编码的转换,以及wstring以及string之间的转换。
后续所说的都是在mac和Linux上实现。
这些信息待后续分别去介绍。
PDFium使用分享相关推荐
- Qt PDF编辑器笔记
案例 Qt5使用QPdfWriter方式写pdf文档 Qt实现生成PDF文档 QT PDF操作 Qt 创建生成PDF报告 Qt开发:生成pdf文件 Qt如何导出pdf Qt之生成pdf Qt Pdf阅 ...
- 面对世界竞争对手,如何拿到Google PDF开源项目PDFium?
面对世界竞争对手,如何拿到Google PDF开源项目PDFium? 发表于2015-10-20 15:06| 844次阅读| 来源CSDN| 8 条评论| 作者蒲婧 CTO俱乐部CTO讲堂CTOPD ...
- 妙用postman系列——postman建组、分享
妙用postman系列--postman建组.分享 添加新的组和请求. 3.生成分享链接 4.导入分享链接
- 【golang程序包推荐分享】go-ini、viper、godoc
[golang程序包推荐&分享]go-ini.viper.godoc 一.go-ini 1.程序包简介 2.下载安装 3.简单使用[截取自官网] 二.viper 1.程序包简介 2.下载安装 ...
- [FaceBook]测试、发布和分享小游戏
FaceBook小游戏 测试.发布和分享小游戏 对于小游戏,您现在可以十分轻松地在本地测试开发版本,自动完成发布流程,以及与团队分享编译版本.本文档会详细说明这些步骤. 通过本地服务器测试游戏 小游戏 ...
- php 导航高亮,zblogphp导航高亮代码分享教程
导航高亮如本站演示,首页.列表页.文章页均可高亮.因为本站的主题是一个免费的zblogphp主题,所以一些好的东西可能没有,所以只好自己研究,本身自带导航高亮的功能,但是只有首页和列表页才有高亮显示, ...
- 微信小程序分享注意点
模拟机如下图 使用呢,文档上都有如下 这个就是小程序分享 如果想点击按钮分享也行,需要设置一下属性如下 open-type="share" 文档内容 onShareAppMessa ...
- 分享一个小工具:Excel表高速转换成JSON字符串
在游戏项目中一般都须要由策划制作大量的游戏内容,当中非常大一部分是使用Excel表来制作的.于是程序就须要把Excel文件转换成程序方便读取的格式. 之前项目使用的Excel表导入工具都是通过Offi ...
- 分享ShareSDK
遇到的问题:当网址包含汉字时,可以分享成功,但只能显示一张大图,不能响应点击事件; 1\首先获取shareSDK的AppKey,进入后台创建应用,获取AppKey 2\cocoapods导入share ...
- 《创业维艰分享之五》所有得,有所乐,日事日清,循序渐进。
这两个月公司连续做了两个大客户紧接着发布新版本再然后又是连续五个小版本迭代计划. 每天16小时的超强度工作,我已经看到兄弟的脸上都写着一个字:累! 我自己又何尝不是,既是客服,又是程序员,还必须是行政 ...
最新文章
- import static
- (转)PWA(Progressive Web App)渐进式Web应用程序
- 插入顶部_声屏障顶部斜插式安装可获得10-25dB的降噪量
- 一爱就是一辈子:坚持4年的编程爱好
- 计算机三级网络技术大题多少分,2017年计算机三级网络技术考前试题及答案(3)...
- 优达学城数据分析笔记1--------数据分析过程(python篇)
- Windows使用opencv训练模型过程记录(提供样本)
- 编写简单的UDP应用
- 码农干私活的建议(转)
- 【clickhouse】MergeTree storage require data path INCOORRECT_FILE_NAME
- 了解一下Bootstrap
- 连接好友服务器失败 无法显示,不显示好友的网络状态
- C++ memset 踩坑(转载)
- 把一个人的特点写具体作文_把一个人的特点写具体作文450字
- 数据库基础之14(MongoDB基本数据类型,数据导入导出,数据备份与恢复)
- SEO网站搜索引擎优化软件
- 新版js进阶高频面试题
- Java 基础 第3阶段:高级应用——尚硅谷学习笔记(含面试题) 2023年
- JavaApi超市会员管理系统
- 聚焦“教-学-评-测-练-管一体化”,推动新型人才培养
热门文章
- 项目领导力与决策管理
- 【优雅编程之道】之IO流,序列化的4点建议
- Caused by: redis.clients.jedis.exceptions.JedisConnectionException: JedisPubSub was not subscribed t
- MPB:南土所褚海燕组-​​利用种分布模型绘制微生物分布图谱
- 清除浮动2021-08-25
- An error occurred.
- 树形DP(Simple Tree,玲珑杯 Round#8 B lonlife 1080)
- python web游戏实例_Python实现小黑屋游戏的完整实例
- 学计算机去二本大学分数线,分数线最低的二本大学
- pp什么意思_在网络用语中PP是什么意思?