add weasyprint function