Sto usando nodejs con modulo phantom per generare pdf da html.PhantomJS: il CSS esterno viene ignorato in pdf renderizzato
Prima di tutto, ho letto il modello html e lo popolo con i dati e poi lo renderizzo come pdf. Vorrei che il cst bootstrap fosse usato per modellare la pagina, tuttavia lo stile è inaridito di sorta nel file pdf risultante.
Ecco il mio codice javascript:
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();
});
});
})
});
});
e il template HTML (simplyfied) si presenta così:
<!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>
Tutto il markup è reso alla pagina, ma non lo stile. Anche se uso file CSS locale o includere stile <style>
elemento nella testa, i risultati sono gli stessi
grazie, il problema sembra essere css bootstrap. Alcuni stili vengono stampati, ma alcuni vengono ignorati. – Zbynek
Puoi dire quali classi e stili sono stati applicati da Bootstrap? Questo mi direbbe un po 'di più su come risolvere il problema. So che Bootstrap non è sempre noto per essere adatto alla stampa.Ecco una sezione correlata sulla stampa da bootstrap: http://stackoverflow.com/questions/12302819/how-to-create-a-printable-twitter-bootstrap-page –
il sistema di griglia non viene applicato - 'row 'e' col-xx-y' – Zbynek