使用render()控制图像输出的DPI

时间:2012-06-07 16:51:11

标签: dpi phantomjs rasterizing

使用phantomjs,有没有办法控制使用page.render(filename)方法栅格化网页内容图像时使用的DPI设置?

我找不到任何可以通过the interface api来控制这一点的内容,但不知道是否有人已经想出办法来做到这一点。

我们的商业案例如下:

通过Web应用程序创建的自定义HTML内容将提供给我们的rasterize.js幻像进程,并查询特定标记以设置客户端矩形。 此客户端矩形呈现为HTML的PNG,然后可以在其他地方用作图像。

我们希望生成的PNG的分辨率高于默认值,因为在某些奇怪的字体大小/粗体组合上对文本进行锯齿处理。

2 个答案:

答案 0 :(得分:2)

我可能会将DPI与其他东西混在一起,但你有没有看过zoomFactor选项?在页面对象上设置它将导致渲染图像缩放。

答案 1 :(得分:0)

This fork allows setting the dpi https://github.com/martonw/phantomjs/tree/issue-%2313553

You can set then the dpi with page.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();
});