PDFium使用分享

概述

  对于PDFium的作用以及来源不做介绍,大家可以自行搜索。 
  使用PDFium已经有一段时间了,但是在使用中,遇到了很多的问题,首先就对于PDFium的编译都是比较困难的(原因省略),但是我这里对这个不做介绍,在github上有很多的例子以及编译好的库,可以直接使用。
  但是由于PDFium的库真的很强大,我只是基于现在遇到和使用的接口和问题点进行说明,如果有新的点和问题欢迎一起讨论哦!

编译之后的头文件目录

下图就是我们编译后,include目录底下的结构:

PDFium使用分享

初始化库以及加载文档

我们关注头文件 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上实现。
  这些信息待后续分别去介绍。