11

使用phantomjs,有没有办法控制使用该page.render(filename)方法对 Web 内容的图像进行光栅化时使用的 DPI 设置?

我找不到任何可以通过接口 api控制它的东西,但不知道是否有人已经想出了一种方法来做到这一点。

我们的业务案例如下所示:

通过 Web 应用程序创建的自定义 HTML 内容被馈送到我们的 rasterize.js 幻像进程,并被查询特定标签以设置客户端矩形。此客户端矩形被渲染为 HTML 的 PNG,然后可以在其他地方用作图像。

我们希望生成的 PNG 的分辨率高于默认值,因为在一些奇怪的字体大小/粗体组合中文本出现锯齿。

4

2 回答 2

2

我可能将 DPI 与其他内容混合在一起,但您是否查看了zoomFactor选项?在页面对象上设置它会导致渲染图像缩放。

于 2012-09-21T12:58:48.810 回答
0

这个 fork 允许设置 dpi https://github.com/martonw/phantomjs/tree/issue-%2313553

然后你可以设置dpipage.dpi = 72

console.log('Loading a web page');  
var page = require('webpage').create();
var url = 'http://phantomjs.org/';
page.open(url, function (status) {
  //Page is loaded!
  page.dpi=300; // this is where you actually set the DPI
  page.render("test.pdf");
  phantom.exit();
});
于 2015-10-06T08:30:35.487 回答