wkhtmltopdf

8

  • Qt (verouderd en WebKit benodigd om te compileren
  • Beiden zware code bases
  • Moeilijk om de nieuwste versies te verkrijgen
  • Veel issues worden niet opgelost

7

  • Erg langzaam
  • Native PDF libraries vaak sneller
  • Eenmaal gestart, is het de vraag hoeveel resources (geheugen) gebruikt worden
  • Dramatisch voor verouderde machines met te weinig RAM

6

  • Headers en footers in complete, losse HTML-bestanden
  • Verschijnen op elke pagina
  • Footnotes? Succes (JavaScript)
  • Boek of magazine met even/oneven pagina's...

5

  • Landscape kan, maar het is alles of niets
  • CSS Paged Media spec heeft syntax
  • Niet ondersteund door wkhtmltopdf

4

  • Slecht gedocumenteerd
  • Moeilijke toegang tot locale resources
  • file:// URL's of paden voor locale content?
  • Zoeken in GitHub issues
  • Base64 encoded embedded resources (grote font bestanden)

3

  • Dramatische kerning
  • Al 4 jaar een open issue
  • De typo-fans trekken wit weg

2

  • Dramatische font support
  • Webfonts gaat prima
  • Meerdere font types onder 1 family niet
  • Nederlands en Japans door elkaar? Meerdere font files
  • Fontconfig is de oorzaak tussen verschil in development en productie

1

  • JavaScript voor paginanummers!
  • Magische strings in plain text headers en footers
  • JavaScript snippet op elke pagina uitvoeren onload
  • Tegenstrijdig met de Paged Media spec
  • Slecht gedocumenteerd

Alternatieven?

  • PDF is bejaard (1993)
  • Open standard in 2003
  • wkhtmltopdf zou te vermijden moeten zijn?

chrome headless pdf 

  • Gebruiken we nog niet echt?
  • Styling issues?

Rijk?

  • Paged Media support
  • Extra features zoals JavaScript, andere formaten, MathML ondersteuning, CSS3 ondersteuning (i.p.v. 2.1)
  • > $2800 per server

Prawn

  • Werkt nog steeds
  • Kan sneller zijn dan het steeds opstarten van een proces
  • Hele beperkte styling, betere font handling

HexaPDf

  • Aardige concurrent
  • In progress
  • Meer mogelijkheden dan alleen text boxes
  • Ontbreekt nog veel (bijv. geen table layout)

WKHTMLTOPDF wrappers

  • wicked_pdf en vergelijkbaar 
  • Interface voor wkhtmltopdf, wrapper om de command line options

Weasyprint

  • BSD-licensed Python oplossing
  • Visual rendering engine
  • Gebaseerd op een aantal libraries, maar niet op een volledige render engine zoals WebKit of Gecko
  • CSS layout engine is geschreven in Python

Installatie...

  • Python, cairo, Pango and GDK-PixBuf
  • WeasyPrint installeren met pip
  • curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
  • python get-pip.py
  • brew install python3 cairo pango gdk-pixbuf libffi
  • pip install WeasyPrint
  • gem install weasyprint (oei)

DEMO

no wkhtmltopdf

By Dimitri Snijder

no wkhtmltopdf

  • 43