wkhtmltopdf
Primeiro, você deve usar a construção estática do wkhtmltopdf
porque contém uma versão corrigida do Qt. ISTO é muito importante para se beneficiar de casos de uso do mundo real como hiperlinks clicáveis.
Usuários de Mac: o homebrew
pacote não é suficiente. Use o .dmg
arquivo e então
sudo ln -s /Applications/wkhtmltopdf.app/Contents/MacOS/wkhtmltopdf /usr/bin/wkhtmltopdf
Comando básico
Até aí tudo bem, o comando para converter uma página da Web em PDF é simples
wkhtmltopdf http://eepurl.com/sjd5r ~/Desktop/dotjs-announce.pdf
Um problema: temos coisas inúteis a bordo. Não é bom distribuir isso.
Executar script
Temos a capacidade de passar script extra para a URL remota antes da renderização.
Este é o script que você terá que passar para o argumento como uma string:--run-script
(function(document, undefined){
//Remove topbar and any stuff located in a .footer class (like MailChimp badge etc.)
Array.prototype.slice.call(document.querySelectorAll('#awesomewrap, [class*=footer]')).forEach(function(el){
el.parentNode.removeChild(el);
});
//Images wrapped in hyperlink are clickable at their full height
Array.prototype.slice.call(document.querySelectorAll('a img')).forEach(function(el){
el.parentNode.style.height = el.height || 'auto';
el.parentNode.style.display = 'inline-block';
});
//Removes the top border (used by #awesomewrap)
document.querySelector('html').style.border = 'none !important';
})(document);
A melhor maneira é carregar o arquivo de seu script de construção, removendo n
chars e escapar com segurança de chars.
Então, o material final
wkhtmltopdf --run-script "`cat /path/to/above/script.js | tr 'n' ' '`" http://eepurl.com/sjd5r ~/Desktop/dotjs-announce.pdf
Aproveitar