PDFium-PDF开源之旅(2)——运行调试pdfium自带的测试程序

PDFium-PDF开源之旅(2)

——运行调试PDFium自带的测试程序

趁热打铁周末,总算有时间继续啦。废话少说,切入正题.

编译运行pdfium_test.exe

下载代码之后,原想直接写个Demo,认真看了工程,PDFium是有自带一个测试程序的,叫pdfium_test.如图:

编译这个工程,运行,调试,就可以一睹PDFium真面目了。运行Demo提示命令行参数格式:

 

来个最简单的,放了一个PDF文件到如下目录: ”E:\project\code\openpdf\test.pdf“

输入参数如下:

pdfium_test.exe ”E:\project\code\openpdf\test.pdf“

输出如下图:

 

看起来这个测试程序,没有输出界面,只是把PDF的解析,显示跑了一遍。不过这个足以让你很容易的入手,探探PDF解析的真面目,弄个断点一步一步调试,跑一遍,基本就了解啦。(这个后面有时间我再另外写文章吧)

如何使用pdfium

通过调试pdfium_test.cc可以让你很清晰的知道,如何使用pdfium的库的使用了。

这里我简单说下调用的步骤:

首先就是库的初始化:

FPDF_InitLibrary(NULL);

 

接下来就是设置一个handle用于获取PDF 文件中是否包含pdfium不支持的对象的信息。

FSDK_SetUnSpObjProcessHandler(&unsuppored_info);

 

然后就开始对PDF进行操作了:具体看 RenderPdf()这个函数,这里实现的功能我罗列下:

1. 加载文档 异步/非异步方式加载文档 :LoadCustomDocument

2. 填表功能 FPDFDOC_InitFormFillEnviroument

3. 页面加载 FPDF_LoadPage

4. 文本加载 FPDFText_LoadPage

5. 页面渲染FPDF_RenderPageBitmap,表单渲染:FPDF_FFLDraw

 一句句解释太累,直接去看代码吧。

 

接下来就是各种handle释放:

  FPDFBitmap_Destroy(bitmap);

 

    FORM_DoPageAAction(page, form,FPDFPAGE_AACTION_CLOSE);

    FORM_OnBeforeClosePage(page, form);

    FPDFText_ClosePage(text_page);

    FPDF_ClosePage(page);

  }

 

  FORM_DoDocumentAAction(form,FPDFDOC_AACTION_WC);

  FPDFDOC_ExitFormFillEnviroument(form);

  FPDF_CloseDocument(doc);

  FPDFAvail_Destroy(pdf_avail);

 

 

最后就是库的释放:

FPDF_DestroyLibrary();

 

好了,就到这里吧,pdfium_test还是比较简单的,看代码基本就一目了然了。下一篇打算自己写一个Demo跑跑pdfium.


原创作品,转载请注明出处。

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 25
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值