2015-06-05 30 views
0

我与webshot NPM模块努力创造我的页面的PDF文件webshot /幻PDF,仅打印页面的下半年

这是我的网页 enter image description here

我“M的PDF获得此作为输出

enter image description here

我的设置是

var options = { 
        renderDelay:10000, 
        "paperSize": { 
         "format": "Letter", 
         "orientation": "portrait", 
         "border": "1cm" 
        }, 
        shotSize: { 
         width: 'all', 
         height: 'all' 
        }, 
        shotOffset: { 
         left: 0 
         , right: 0 
         , top: 0 
         , bottom: 0 
        } 
       }; 

       webshot(url, fileName, options, function(err) { 
        fs.readFile(fileName, function (err,data) { 
        if (err) { 
         return console.log(err); 
        } 

        fs.unlinkSync(fileName); 
        fut.return(data); 
        }); 
       }); 

      this.response.writeHead(200, {'Content-Type': 'application/pdf',"Content-Disposition": "attachment; filename=generated.pdf"}); 
this.response.end(fut.wait()); 

流星的家伙,这是我的服务器端根

this.route('generatePDF', { 
     path: '/api/generatePDF', 
     where: 'server', 
     action: function() { 
      var webshot = Meteor.npmRequire('webshot'); 
      var fs  = Npm.require('fs'); 
      Future = Npm.require('fibers/future'); 
      var fut = new Future(); 
      var fileName = "generated_"+Random.id()+".pdf"; 
      var userid = (Meteor.isClient) ? Meteor.userId() : this.userId; 
      console.log(userid); 
      // var username = Meteor.users.findOne({_id: userid}).username; 
      var url = "url"; 

      var options = { 
       renderDelay:10000, 
       "paperSize": { 
        "format": "Letter", 
        "orientation": "portrait", 
        "border": "1cm" 
       }, 
       shotSize: { 
        width: 'all', 
        height: 'all' 
       }, 
       shotOffset: { 
        left: 0 
        , right: 0 
        , top: 0 
        , bottom: 0 
       } 
      }; 

      webshot(url, fileName, options, function(err) { 
       fs.readFile(fileName, function (err,data) { 
       if (err) { 
        return console.log(err); 
       } 

       fs.unlinkSync(fileName); 
       fut.return(data); 
       }); 
      }); 

      this.response.writeHead(200, {'Content-Type': 'application/pdf',"Content-Disposition": "attachment; filename=generated.pdf"}); 
      this.response.end(fut.wait()); 
     } 
    }); 

我在这里缺少什么?任何帮助表示赞赏

+0

我没有看到你的代码有什么问题。也许该网站,PhantomJS或两者都是坏的。也许有更改shotOffset解决方法 –

回答

0

你可以尝试PAPERSIZE更改为:

"paperSize": { 
       width: '612px', 
       height: '792px', 
       margin: 'XXpx' 
      }, 
0

如果任何人都会有麻烦 - 我有同样的问题。我无法确切地告诉你为什么,但问题是我正在使用引导程序,并且我的页面的包装具有“容器”类。删除这个类之后,整个页面都被渲染 - 没有删除它,只是在页面的一半附近渲染。