繁体   English   中英

将HTML传递给幻像并将其呈现为PDF

[英]pass HTML to phantom and render it to PDF

通常在幻像中,您将可以执行以下操作:

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();

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

但是,除了加载网页之外,我已经有一些HTML,我希望将其传递并呈现为PDF。

我如何才能仅将其传递HTML并将其转换为PDF PhantomJs是否适合此方法?或者ffmpeg是更好的方法?如果是,我该如何使用ffmpeg

您可以设置页面content属性

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();
        });
    });
});

不再支持幻影。 我建议使用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();
})();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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