2013-04-06 141 views
0

我正在使用Poppler在Qt和C++中編寫pdf查看器。我如何渲染一個pdf頁面以適合我的小部件大小? Poppler提供了一個名爲renderToImage的方法,它接受一個dpi並返回一個QImage,其大小隨dpi的變化而變化。如何計算正確的dpi?Poppler:以目標分辨率渲染

+0

我改用QtWebKit和PDF.js。渲染速度有點慢(仍然很好),但在幾個小時內完成了工作。 – Archie 2013-04-06 21:50:29

+0

我從okular中刪除了kde組件,所以okular core程序可以在qt中運行。你可以試試。我的github地址是http:// github/lin-min – 2013-04-07 04:06:44

回答

1

pageSizeF()以磅爲單位返回頁面大小,除以72則爲頁面大小以英寸爲單位。

您的小部件大小的每個分量(以像素爲單位)除以每英寸分量的大小(以英寸爲單位)將爲您提供2 dpi的值(每個軸爲1)。

如果要保持頁面寬高比,則應將這兩個dpi值中較小的一個通過xresyres參數的renderToImage