将 HTML 传递给 phantom 并将其渲染为 PDF
pass HTML to phantom and render it to PDF
通常在 phantom 中你可以这样做:
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
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();
});
});
});
不再支持 Phantom。
我建议使用 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();
})();
通常在 phantom 中你可以这样做:
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
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();
});
});
});
不再支持 Phantom。 我建议使用 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();
})();