将HTML传递给幻像并将其渲染为PDF

时间:2015-06-03 08:26:43

标签: node.js pdf phantomjs

通常在幻像中你可以做这样的事情:

phantom = require('phantom')


phantom.create(function(ph){
  ph.createPage(function(page) {
    page.open("http://www.google.com", function(status) {
      page.render('google.pdf', function(){

        console.log('Page Rendered');
        ph.exit();

      });
    });
  });
});

然而,我没有加载网页,而是已经拥有了一些我希望传递并呈现为PDF格式的HTML。

我如何能够将HTML传递给PDF并将其转换为PhantomJs并且ffmpeg是正确的appraoch,或ffmpeg更好的方法,如果那么我如何使用if((int64)a < (int64)b) { ..... }

2 个答案:

答案 0 :(得分:2)

您可以设置content property of the page

phantom = require('phantom')
phantom.create(function(ph){
    ph.createPage(function(page) {
        page.content = "Some html"//Set your html here
        page.render('google.pdf', function(){
            console.log('Page Rendered');
            ph.exit();
        });
    });
});

答案 1 :(得分:0)

不再支持幻影。 我建议使用Chrome DevTools团队中的puppeteer。代码更清晰,更易读:

const puppeteer = require('puppeteer');
(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.setContent(`<p>Hello world!</p>);
  // alternatively it can be fetched from web
  // await page.goto('https://news.ycombinator.com', {waitUntil: 'networkidle2'});
  await page.pdf({path: 'hn.pdf', format: 'A4'});
  await browser.close();
})();