使用 window.print content 将网页下载为 pdf

Toq*_*uis 6 javascript php pdf moodle

我想要一个链接,当点击它时,会自动开始下载网页的可打印版本。

我正在使用 Moodle。我想要的内容完全相同如果我使用 ctrl + p 下载页面并保存为 pdf 或使用

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

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.

scr*_*rd3 5

我不相信有办法做到这一点window.print()。不过,有免费的 HTML 到 PDF 转换器,您可以使用它自动开始下载。jsPDF就是一个例子,这是一个使用 Javascript 将 HTML 转换为 PDF 的免费库


Sha*_*ain 5

**使用 jsPDF 的方法很简单,非常简单,只需使用 JSpdf 库即可 **

<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);
Run Code Online (Sandbox Code Playgroud)

  • fromHTML 不会为你加载 css,所以它不一样,你需要使用 addHTML 和 html2canvas.js (2认同)