How to print PDF from IFRAME if src = pdf?

I have an iframe which needs point directly to a PDF file (not a page with a PDF):

<iframe id="ecard-pdf" name="ecard-pdf" style="position: absolute;" src="/profile.pdf">

I want to be able to print the PDF in this iFrame

I have found several solutions in other questions that do not fit my needs:

  1. Require to have a function in the iframe ( )
  2. Suggest focusing the frame and then performing print action on it ( )
  3. Access contentWindow of the iframe and print it ( )
  4. Variations of those

However, it seems that FireFox and IE can't do this if the iframe's src points directly to a PDF and not to a page wrapped around the PDF.


Instead of printing, it displays this dialog: "Prevent this page from creating additional dialogues" with "OK" and "Cancel" buttons, neither of which prints the PDF.


just ignores my attempts to print using the above methods.


How can I allow users to print the PDF in the iFrame no matter what browser they are using?



I have struggled a bit to find a solution that works for both IE and Chrome. This works for me:

$(function() {
    var ua = window.navigator.userAgent;
    var msie = ua.indexOf('MSIE ');
    var trident = ua.indexOf('Trident/');
    var edge = ua.indexOf('Edge/');
    var url = '/url/to/file.pdf';
    var pdf ='';
    var style = 'position:fixed; top:0px; left:0px; bottom:0px; right:0px; width:100%; height:100%; border:none; margin:0; padding:0; overflow:hidden;';

    if(msie > 0 || trident > 0 || edge > 0){
        pdf = '<object data="' + url + '" name="print_frame" id="print_frame" style="' + style + '" type="application/pdf">';
        pdf ='<iframe src="' + url + '" name="print_frame" id="print_frame" style="' + style + '"></iframe>';





As suggested in this answer for a similar question, you could do this:


This should solve your problem.


Option 1:

I haven't tested this but I found another answer here:

Assuming that you could use the following:

<style type="text/css" media="print">
   body *{display:none}

So then just the pdf is displayed?

Option 2:

Make a hyperlink to the pdf file that says "Print me"

<a href='Path/To/PDF'>Print Me</a>

Hope this helps...



This seems to be working:

   <style type="text/css" media="print">
   body *{display:none}

So then just the pdf is displayed?


You can use directly window print option. use onclick option



Recent Questions

Top Questions

Home Tags Terms of Service Privacy Policy DMCA Contact Us

©2020 All rights reserved.