0

I just want to call the browser's print functionality, but rather than have it print the current page, I want it to print a specific document. Is this possible? I'm aware of how to use things like dom2pdf for dynamic pdf creation, and I'm aware of javascript's window.print() functionality, but I'm not aware of how to print a separate, pre-existing PDF document using javascript. Thanks!

mheavers
  • 29,530
  • 58
  • 194
  • 315

2 Answers2

2

If the PDF is on your server, you can open a new window that has the PDF loaded and call .print() on the window:

var page = window.open('/path/to/pdf');
page.print();

If you want it to be hidden, you can do the same thing with an iFrame. If it's not on your server, you're out of luck due to cross-domain issues.

  • That may require that the browser has the pdf reader installed as a plugin instead of as a standalone application, probably. – Pointy Mar 21 '11 at 19:54
  • Yes, a pdf reader needs to be installed, but the .print() call works just fine. –  Mar 21 '11 at 19:59
  • I tried this (granted on a local server running MAMP) and it crashed my browser tab. – mheavers Mar 21 '11 at 20:02
1

No, it's not possible. You can only print things natively displayed by your browser.

Adam Hopkinson
  • 28,281
  • 7
  • 65
  • 99