PDFium-PDF开源之旅(2)——运行调试pdfium自带的测试程序
来源:互联网 发布:sql select 不同 编辑:程序博客网 时间:2024/06/01 07:30
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.
原创作品,转载请注明出处。
- PDFium-PDF开源之旅(2)——运行调试pdfium自带的测试程序
- PDFium-PDF开源之旅(1)-初探代码下载编译
- Qt显示PDF之三 pdfium编译
- Qt显示PDF之四pdfium封装
- Qt显示pdf系列4——封装pdfium库为动态库,显示pdf
- 基于pdfium获取pdf目录
- 面对世界竞争对手,如何拿到Google PDF开源项目PDFium?
- Qt显示pdf系列3——配置编译谷歌开源项目pdfium
- pdfium mupdf dll delphi viewer demo
- mvn使用Intellij自带的运行和调试
- Hadoop2.5.1测试(运行自带的wordcount)
- 坑爹的tensorflow自带mnist 测试运行
- 如何运行jasperReport自带的例子程序
- Eclipse下运行hadoop自带的mapreduce程序--wordcount
- 运用kinect相机运行pcl自带的kinectfusion程序
- 运行hadoop自带的案例—wordcount
- lazarus自带ssl例子运行测试
- 让Java程序自带JRE运行
- 09:可变参数
- Qt的事件处理机制分析
- linux下编译ffmpeg
- linux的有名管道学习
- JavaScript 曾经熟知的常用功能汇总
- PDFium-PDF开源之旅(2)——运行调试pdfium自带的测试程序
- hdu 1233(最小生成树)
- 毕业前开贴——MSP430F5529LaunchPad学习
- spring3 mvc与struts2比较
- Qt源码分析之QObject
- HDU 1175 连连看+ HDU 1728 逃离迷宫
- estjndrykm电深入研究塞推荐染色鱼没一日三就
- drykmdrykmry导热油开门人说也没生低碳阴谋他的号码
- Windows XP Mode忘记密码或清除了登录