Since you are using jQuery
try:
$( document ).ready(function() { //console.log( "ready!" ); PDF1(); });
Also Note: You could use (not required):
var source = $("body")[0];
Code page used to test
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>fromHTML EX</title> <meta http-equiv="content-type" content="text/html;charset=utf-8" /> <meta name="generator" content="Geany 1.22" /> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <script src="https://parall.ax/parallax/js/jspdf.js"></script> <script type="text/javascript"> function PDF1(){ var doc = new jsPDF(); var elementHandler = { '#ignorePDF': function (element, renderer) { return true; } }; var source = window.document.getElementsByTagName("body")[0]; doc.fromHTML( source, 15, 15, { 'width': 180,'elementHandlers': elementHandler }); doc.output("datauri"); } $( document ).ready(function() { //console.log( "ready!" ); PDF1(); }); </script> </head> <body> ASDSADASDASDSA <div> <p id="ignorePDF">don't print this to pdf</p> <p><font size="3" color="red">print this to pdf</font></p> </div> </body> </html>