简体   繁体   中英

Webshot fails on Meteor in DigitalOcean Ubuntu 14.04

I am using this code to generate pdf:

let fileUri = process.env.PWD + '/storage/orders-pdf/' + fileName;

// Commence Webshot
webshot(html_string, fileUri, options, function(error) {
  fs.readFile(fileUri, function (err, data) {
    if (err) {
        return console.log(err);
    }

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

let pdfData = fut.wait();

But it throws the following error:

{ [Error: ENOENT, open '/opt/holi/storage/orders-pdf/Attributes.pdf']
   errno: 34,
   code: 'ENOENT',
   path: '/opt/holi/storage/orders-pdf/Attributes.pdf' }

Tried to use npm package https://github.com/brenden/node-webshot Then code works perfectly on localhost, but fails on the server and throws this error:

EDIT:

Even when running webshot without:

fs.readFile(fileUri, function (err, data) {
  if (err) {
    return console.log(err);
  }

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

The file is not created..

EDIT-2:

Webshot throws an error: [Error: PhantomJS exited with return value 2]

EDIT-3: Actual issue: https://github.com/brenden/node-webshot/issues/123

I had a similar problem, and spent most of the day trying to figure out the issue. I ended up adding:

"phantomPath": "/usr/bin/phantomjs"

to my webshot options object. The phantom path I used is where mup installs phantomjs on your server setup.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM