Poppler:以目标分辨率渲染

Posted

技术标签:

【中文标题】Poppler:以目标分辨率渲染【英文标题】:Poppler: render with a target resolution 【发布时间】:2013-04-06 21:07:25 【问题描述】:

我正在使用 Poppler 在 Qt 和 C++ 中编写一个 pdf 查看器。如何呈现 pdf 页面以适合我的小部件大小? Poppler 提供了一个名为 renderToImage 的方法,它接受一个 dpi 并返回一个 QImage,其大小随该 dpi 变化。如何计算正确的dpi?

【问题讨论】:

我使用的是 QtWebKit 和 PDF.js。渲染有点慢(还不错),但在几个小时内完成了工作。 我从okular中移除了kde组件,这样okular核心程序就可以在qt中运行了。你可以试试。我的github地址是github/lin-min 【参考方案1】:

pageSizeF() 返回以磅为单位的页面大小,除以 72 后得到以英寸为单位的页面大小。

小部件大小的每个组成部分(以像素为单位)除以大小的每个组成部分(以英寸为单位)得出 2 个 dpi 值(每个轴 1 个)。

如果要保持页面纵横比,则应将这两个 dpi 值中较小的一个传递给 renderToImage,用于 xresyres 参数。

【讨论】:

以上是关于Poppler:以目标分辨率渲染的主要内容,如果未能解决你的问题,请参考以下文章

分辨率等概念

svg学习之旅

highcharts echarts比较

MuPdf 库在从 pdf 页面渲染图像时是不是比 xpdf/poppler 更快?

高分辨率图像 IE 浏览器渲染

渲染到窗口帧缓冲区和 FBO 以保存全尺寸纹理图像