如何在重定向后将页面呈现为pdf?

时间:2017-07-03 10:25:14

标签: node.js phantomjs

问题

我正在尝试从需要登录的网站获取报告的pdf。所以我首先登录该网站,然后重定向到我想要访问的页面。我需要将onLoadFinished函数挂钩到page.render函数。这是我正在使用的代码:

page.open(BASE_URL + Report_URL).then(function(status) {
        console.log(status);
        try{
            page.evaluate(function(){      
                setTimeout(function(){
                document.getElementById("username").value = "admin";
                document.getElementById("password").value = "admin";
                document.getElementById("submit").click();
                },100)                  
            })

        page.property('onLoadFinished', function(status,page) {
            console.log('==== onLoadFinished()');
            try{
                console.log('  status: ' + status );
                page.render("report.pdf")
            }catch(ex){
                var fullMessage = "\nJAVASCRIPT EXCEPTION";           
                console.log(fullMessage);
            }
        },page);
        }catch(ex){
            var fullMessage = "\nJAVASCRIPT EXCEPTION";

            console.log(fullMessage);
        }

    });

,但 没有任何事情发生,甚至没有例外。 怎么能实现这一目标?我想将onloadFinished函数链接到另一个函数,该函数可以将页面呈现为pdf ...请帮助!!

环境

  • 操作系统:Ubuntu 14
  • 节点版本(node -v):v6.2.2
  • 包版本:npm - 3.9.5

1 个答案:

答案 0 :(得分:0)

我使用 this.render 代替page.render解决了这个问题。

详细信息: - https://github.com/amir20/phantomjs-node/issues/675#issuecomment-312733078