首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >PhantomJS:导出到标准输出

PhantomJS:导出到标准输出
EN

Stack Overflow用户
提问于 2012-07-10 15:13:21
回答 3查看 12K关注 0票数 19

有没有一种方法可以在不使用.pdf扩展名指定输出文件的情况下在PhantomJS中触发PDF导出功能?我们想要使用stdout来输出PDF。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-07-16 23:58:17

正如Niko所指出的,您可以使用renderBase64()将web页面呈现到图像缓冲区,并将结果作为base64编码的字符串返回。

但目前,这只适用于PNG、JPEG和GIF。

要将phantomjs脚本中的内容写入标准输出,只需使用filesystem API即可。

我在图片中使用了类似这样的东西:

var base64image = page.renderBase64('PNG');
var fs = require("fs");
fs.write("/dev/stdout", base64image, "w");

我不知道renderBase64()的PDF格式是否会出现在未来的phanthomjs版本中,但作为一种变通办法,下面这些内容可能会对你有用:

page.render(output);
var fs = require("fs");
var pdf = fs.read(output);
fs.write("/dev/stdout", pdf, "w");
fs.remove(output);

其中output是pdf文件的路径。

票数 14
EN

Stack Overflow用户

发布于 2013-06-25 02:30:15

您可以直接输出到标准输出,而不需要临时文件。

page.render('/dev/stdout', { format: 'pdf' });

有关何时添加此项的历史记录,请参阅here

如果你想从标准输入中获取超文本标记语言并输出到标准输出,see here

票数 20
EN

Stack Overflow用户

发布于 2012-07-15 17:07:25

我不知道它是否能解决您的问题,但您也可以检查一下添加到PhantomJS 1.6中的新renderBase64()方法:https://github.com/ariya/phantomjs/blob/master/src/webpage.cpp#L623

不幸的是,维基上还没有记录这一特性:/

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11408332

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档