I think the problem is that you use media="print"
instead of media="screen"
.
Try making two seperate files, one for print and one for the screen:
<link rel="stylesheet" href="https://stackoverflow.com/questions/20460035/print.css" type="text/css" media="print"/>
<link rel="stylesheet" href="screen.css" type="text/css" media="screen"/>
The screen one will contain the styling for the page as seen in a browser. The print one will contain the styling for when you print your page, or in this case saving it as a PDF.
EDIT
I checked the jsPDF website but I think they don’t support CSS. You could do something like this to create a document with different text colors though:
doc.setFontSize(22);
doc.setTextColor(255, 0, 0);
doc.text(20, 20, 'This is a title');
doc.setFontSize(16);
doc.setTextColor(0, 255, 0);
doc.text(20, 30, 'This is some normal sized text underneath.');
Put this code right under var doc = new jsPDF('landscape');
in your script.