Exportar campanha MailChimp como PDF

wkhtmltopdf

Primeiro, você deve usar a construção estática do wkhtmltopdfporque 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 homebrewpacote não é suficiente. Use o .dmgarquivo 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 nchars 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