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.


原創作品,轉載請註明出處。

發佈了18 篇原創文章 · 獲贊 11 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章