Node.js Phantom JS用于节点,是否使用打印样式表?

Node.js Phantom JS用于节点,是否使用打印样式表?,node.js,stylesheet,phantomjs,Node.js,Stylesheet,Phantomjs,我正在使用NodeJS生成PDF 有没有办法让Phantom JS使用打印样式表而不是屏幕样式表进入屏幕截图页面 目前我已经设置好了打印样式表,可以开始了,但是Phantom JS被识别为屏幕设备而不是打印设备 这里有一段代码,你可以看到我在做什么 提前谢谢 var date = Date.now(); var images = []; capture(results.length, 0); function capture(pagesLength, page

我正在使用NodeJS生成PDF

有没有办法让Phantom JS使用打印样式表而不是屏幕样式表进入屏幕截图页面

目前我已经设置好了打印样式表,可以开始了,但是Phantom JS被识别为屏幕设备而不是打印设备

这里有一段代码,你可以看到我在做什么

提前谢谢

    var date = Date.now();
    var images = [];

    capture(results.length, 0);

    function capture(pagesLength, pageId) {
        if (pagesLength <= 0) {
            stopCapture();
        }
        else {
            snapshot(pagesLength, pageId);
        }
    }

    function snapshot(pagesLength, pageId) {
        phantom.create(function (ph) {
            ph.createPage(function (page) {
                page.open("http://127.0.0.1:3000/#/pages/" + results[pageId]["_id"], function (status) {
                    var fileName = results[pageId]["_id"] + ".jpeg";
                    images.push(fileName);
                    page.render("public/temp/" + date + "/" + fileName, {format: 'jpeg', quality: '100'}, function () {
                        pagesLength--;
                        pageId++;
                        ph.exit();
                        if (pagesLength <= 0) {
                            mergeImages();
                        } else {
                            snapshot(pagesLength, pageId);
                        }
                    });
                });
            });
        });
    }
var date=date.now();
var图像=[];
捕获(results.length,0);
函数捕获(页面长度、页面ID){

如果(pagesLength您无法更改它,因为它在QtWebkit中是硬编码的


第一名:

如果打印样式表与屏幕样式分开:

<link rel="stylesheet" href="style.css" type="text/css" media="screen" />
<link rel="stylesheet" href="printstyle.css" type="text/css" media="print" />
(^未经测试)

这将产生:

<link rel="stylesheet" href="printstyle.css" type="text/css" media="screen" />
(^也未经测试)


screen
更改为
print
,编译它并享受乐趣。

这是可行的,但还不够,因为您必须考虑
@媒体屏幕和…
。另请参阅phantomjs问题跟踪程序上的此评论:
<link rel="stylesheet" href="printstyle.css" type="text/css" media="screen" />
FrameView::FrameView(Frame* frame)
...
    , m_mediaType("screen")
...