Poppler

自由軟體PDF彩現函式庫

Poppler(或稱為 libpoppler)是一個用來渲染 PDF 文件的自由程式庫,其開發受 freedesktop.org 支援。它是 GNU/Linux 系統上同類程式庫中最為常用的[2],並被開源桌面環境 GNOMEKDE 上的 PDF 閱讀器所使用。

Poppler
開發者freedesktop.org
首次釋出2005年3月4日,​19年前​(2005-03-04
目前版本
  • 24.09.0(2024年9月1日;穩定版本)[1]
編輯維基數據連結
原始碼庫 編輯維基數據連結
程式語言C++
作業系統Linux, Unix, BSD, Windows
類型函式庫
特許條款GPLv2GPLv3
網站poppler.freedesktop.org

專案發起者 Kristian Høgsberg 有兩個目標:[3]

  1. 以一個程式庫的方式提供PDF渲染功能,集中維護力量。
  2. 超過Xpdf的目標,並與現代作業系統所提供的功能結合。

到了2011年0.18版釋出,Poppler庫完整實現了PDF標準 ISO 32000-1英語ISO 32000-1,還是第一個支援表單和註釋的主流的自由 PDF 程式庫。[2]

Poppler本身是Xpdf-3.0,一個由來自Glyph and Cog, LLC 的 Derek Noonburg 開發的 PDF 閱讀器的分支。[3][4]

專案名稱「Poppler」來自動畫《Futurama》「The Problem with Popplers」一集。[4]

應用

許多自由軟件使用 Poppler 渲染 PDF 文件。[5]

應用程式 圖形庫
Evince GTK+
FlaxPDF英語FlaxPDF FLTK
KPDF Qt
LibreOffice 6.0 GTK+
Inkscape GTK+
Okular Qt
pdftotext英語pdftotext, pdftohtml 等
TeXworks英語TeXworks Qt
TeXstudio GTK+
VPDF GTK+
Xournal GTK+
Zathura英語Zathura (document viewer) GTK+

特性

Poppler可以使用Cairo和Splash兩個後端繪製PDF文件,而它的特性又取決於所使用的後端。一個基於Qt4繪製框架的第三方後端「Arthur」也是可用的,但是並不完整,而且已不再是活躍開發狀態了。[6] Glib,Qt3和Qt4的繫結提供了對Poppler後端的互動介面。儘管Qt3和Qt4繫結僅僅支援Splash後端,有一組可用的修補程式支援使用Cairo後端的Qt4繫結。[7]然而,Poppler 專案現在依然不希望將這個特性添加到 Poppler 庫中。[8]

後端的一些特點包括:

  • Cairo:向量圖形反鋸齒,以及透明物件渲染。[5]
    • Cairo並不對諸如掃描文件的點陣圖進行平滑處理。
    • Cairo並不依賴於X Window環境,因此Poppler得以像Wayland一樣在不同平台如WindowsMac OS上執行。
  • Splash:支援點陣圖的微小濾波 。[5]

Poppler還有一個文字渲染後端,可以從命令列實用程式 pdftotext 呼叫。它可以用來在命令列下從 PDF 檔案中搜尋字串(比如說同 grep連用)。[9]

具體的方法範例:

pdftotext file.pdf - | grep string

Poppler支援使用JavaScript,註釋和表單的可互動式文件,[10] 但還不支援呈現完整的XFA表單。[11]

參考文獻

  1. ^ poppler-24.09.0. 2024年9月1日 [2024年9月2日]. 
  2. ^ 2.0 2.1 GNU PDF project leaves FSF High Priority Projects list; mission complete!. October 6, 2011 [2011-10-11]. (原始內容存檔於2014-12-28). 
  3. ^ 3.0 3.1 Poppler README file. [2010-01-21]. (原始內容存檔於2012-07-08). 
  4. ^ 4.0 4.1 Poppler Homepage. [2015-01-03]. (原始內容存檔於2015-01-08). 
  5. ^ 5.0 5.1 5.2 Poppler Wiki. Information about Poppler. [2010-01-21]. (原始內容存檔於2018-06-23). 
  6. ^ Albert Astals Cid. Re: [poppler] Qt4 Arthur. mail-archive.com. 15 May 2009 [2018-06-22]. (原始內容存檔於2018-06-23). 
  7. ^ giddie/poppler-qt4-cairo-backend. GitHub. [2018-06-22]. (原始內容存檔於2017-08-09). 
  8. ^ Bug 25240 – Cairo backend for Qt4 wrapper. freedesktop.org. [2018-06-22]. (原始內容存檔於2018-06-22). 
  9. ^ Searching PDF Files With grep. [2010-01-21]. (原始內容存檔於2010-02-12). 
  10. ^ Poppler PDF library learns Javascript. September 12, 2008 [2010-01-21]. (原始內容存檔於2018-06-22). 
  11. ^ Bug 18935 - Form data is not saved for PDF files using XFA forms, will show old values when opened in acroread / Adobe Reader, 2008-12-07 [2018-06-22], (原始內容存檔於2018-06-22)