c++ - Poppler:以目标分辨率渲染

标签 c++ qt poppler

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

最佳答案

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

小部件尺寸的每个分量(以像素为单位)除以尺寸的每个分量(以英寸为单位)得到 2 dpi 值(每个轴 1)。

如果你想保持页面的宽高比,你应该将这两个 dpi 值中较小的一个传递给 renderToImage 用于 xresyres 参数。

关于c++ - Poppler:以目标分辨率渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15856033/

相关文章:

c++ - MPI 使用更多的 CPU 花费更多的时间

c++ - 如何将 std::promise 传递到线程中?通过 std::move 还是通过 std::shared_ptr?

qt - 以编程方式查找最新 Qt 版本号的最简单方法是什么?

c++ - QObject* 列表的内存管理导致 QML 中出现 "Cannot read property X of null"错误

c++ - 有没有办法使用 libpoppler 分别访问页眉、页脚和页面内容?

pdf - poppler pdfunite 无法合并加密的 PDF 文件,如何去除加密? (无需密码即可打开)

c++ - 如何获得可用内存 C++/g++?

c++ - 我应该如何在 UDP 中的 Boost Asio 中找到我从哪个客户端接收?

c++ - Qt C++ : Include all library files in project folder

python - pdf2image 不适用于gunicorn/flask