2013-04-06 148 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