私はhtmlからpdfを生成するためにphantomモジュールでnodejsを使用しています。PhantomJS:レンダリングされたpdfで外部CSSが無視されます
まず、htmlテンプレートを読み込んでデータを入力し、pdfとしてレンダリングします。私はブートストラップCSSを使用してページのスタイルを設定したいと思いますが、結果として得られるpdfファイルにはスタイリングが含まれています。ここ
は私のjavascriptのコードです:
<!DOCTYPE html>
<html>
<head>
<link href="https://cdnjs.cloudflare.com/ajax/libs/bootswatch/3.3.5/paper/bootstrap.min.css", rel="stylesheet">
<meta charset="utf-8">
</head>
<body>
<div class="container">
<h1>Title</h1>
<%NAME%>
</div>
</body>
</html>
すべてのマークアップがページにレンダリング、ないスタイリングされています
var phantom = require('phantom');
var htmlTemplate;
fs = require('fs')
fs.readFile('template.html', 'utf8', function (err,data) {
var htmlTemplate = populateTemplate(data, body)
phantom.create(function(ph){
ph.createPage(function(page) {
page.set("paperSize", {
format: "A4",
orientation: 'portrait',
margin: '1cm'
});
page.setContent(htmlTemplate, "", function(){
page.render("../userdata/test.pdf", function(){
console.log("page rendered");
ph.exit();
});
});
})
});
});
とHTMLテンプレート(simplyfied)は次のようになります。私は頭の中で<style>
要素にスタイルをローカルのCSSファイルを使用するか、または含まれている場合でも、結果は同じ
おかげで、問題は、ブートストラップCSSのようです。一部のスタイルは印刷されますが、一部は無視されます。 – Zbynek
Bootstrapのどのクラスとスタイルが適用されているかを教えてください。そうすれば、問題を解決する方法がわかります。私はBootstrapが常に印刷に優しいとは知られていないことを知っています。ブートストラップからの印刷に関する関連スレッドは次のとおりです。 http://stackoverflow.com/questions/12302819/how-to-create-a-printable-twitter-bootstrap-page –
グリッドシステムが適用されません。 'と' col-xx-y' – Zbynek