8

I would like to have a link that when is clicked, automatically starts the download of the printable version of the web page.

I'm using Moodle. The content I want it's exactly the same If I download the page using ctrl + p and saving as pdf or using

<a href=\"whatever.htm\" onClick=\"window.print();return false\">Download web page</a>

I want exactly that content because using this way, the header, sidebar and footer is removed. I don't want css.

I'm not using this because this doesn't work in some browsers.

I'd rather not using pdf libraries like tcpdf because Moodle loads the content in a dynamic way and send this to a libraries like that is a mess.

I tried using sites like pdfcrowd.com but this kind of sites don't work when the site you want to convert to pdf uses a server-side session to identify the user.

Toquis
  • 105
  • 1
  • 2
  • 7
  • Users can (depending on the browser and OS) print to PDF of their own choosing. Or you can create a PDF using server-side coding tools and make it downloadable. But you cannot specify "print to PDF". – Blazemonger Dec 17 '13 at 22:40

2 Answers2

5

**There is easy ways to use jsPDF its very simple just you will use JSpdf Library **

<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.3.2/jspdf.min.js"></script>

function onClick() {
  var pdf = new jsPDF('p', 'pt', 'letter');
  pdf.canvas.height = 72 * 11;
  pdf.canvas.width = 72 * 8.5;

  pdf.fromHTML(document.body);

  pdf.save('test.pdf');
};

var element = document.getElementById("clickbind");
element.addEventListener("click", onClick);
Shakil Hossain
  • 1,701
  • 13
  • 25
4

I don't believe that there is a way to do this with window.print(). However, there are HTML to PDF converters available for free, and you could automatically start a download with that. An example of this would be jsPDF, a free library for converting HTML to a PDF with Javascript

scrblnrd3
  • 7,228
  • 9
  • 33
  • 64