Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Images not displaying when Print Preview (Or Print) in IE/Chrome/Firefox

I'm Web Developer and almost never work with design but have been given this bug which I'm struggling to rectify.

Some images appear correctly when I print/display the print preview page, however others don't. The key difference that I can see is that the images that don't appear are span tags with the image applied in css whilst the working images use the img tag.

Here are examples of the html:

Span with "icon" birth does not display:

<li class="media">
    <div class="img">
        <div class="h2 mtm">1889</div>
        <span class="timeline-icon icon-birth"></span>
    </div>
    <div class="bd">
        <h3 class="profile-subtitle mts">Born in ?</h3>
        <p class="deemphasis mbn">
        <a href="/search/results/bmdindexedbirths/bibby/elizabeth%20?yearofbirth=1889">Search     for Birth Record</a>
        </p>
    </div>
</li>

Image.gif does display:

<li class="media">
    <div class="img">
        <div class="h6">
            <strong>Spouse</strong></div>
            <img src="image.gif" alt="" class="person-thumb dropshadow" />
        </div>
    <div class="bd">
        <p class="mbn">Husband</p>
        <h3 class="profile-subtitle">
            <a href="path">Thomas&nbsp;<strong>Name</strong></a>
        </h3>
        <p class="mbn">?&#45;?</p>
    </div>
</li>

In some browsers it looks ok in the preview but does not print, in others it doesn't and still does not print.

Thankyou in advance!

like image 580
IntoTheBlue Avatar asked Sep 20 '12 17:09

IntoTheBlue


People also ask

Why is Firefox not showing pictures?

Clear cookies and cache Sometimes problems loading websites can be fixed by clearing the cookies and cache. to open the menu panel. In the Time Range to clear: drop-down, select Everything. Below the drop-down menu, select both Cookies and Cache.

How do I enable images in Firefox?

Click on the "Exceptions" button next to the "Load images automatically" line. In the window that appears, click on any website that has its status listed as "Block," and click "Remove Site" to allow images to load when you visit that website. To remove all exceptions at once, click on the "Remove All Sites" button.

Why are images not loading in Chrome?

You or someone else may have disabled the image load option in Chrome, turned off JavaScript, or one of your extensions may be causing Chrome not to load your images.


3 Answers

I had the same problem over two months ago. I had a button that redirected users to a printer-friendly page and then I triggered print dialog using Javascript.

The problem was that browsers did not wait till images specified in CSS background were downloaded.

I put timeout before triggering the print dialog to give browser time to download images. This approach is not reliable since nobody has constant download speed and it would open the print dialog before the images are downloaded to users with very slow Internet connection.

In the end, I used HTML img tags to embed images on my page and jQuery to trigger the print dialog when the last image is downloaded.

like image 143
DarwinH Avatar answered Sep 19 '22 13:09

DarwinH


You need to put delay before print. There is a native bug in chrome. Code would as under :-

function PrintDiv(data) {
    var mywindow = window.open();
    var is_chrome = Boolean(mywindow.chrome);
    mywindow.document.write(data);

   if (is_chrome) {
     setTimeout(function() { // wait until all resources loaded 
        mywindow.document.close(); // necessary for IE >= 10
        mywindow.focus(); // necessary for IE >= 10
        mywindow.print(); // change window to winPrint
        mywindow.close(); // change window to winPrint
     }, 250);
   } else {
        mywindow.document.close(); // necessary for IE >= 10
        mywindow.focus(); // necessary for IE >= 10

        mywindow.print();
        mywindow.close();
   }

    return true;
}
like image 33
Anand Deep Singh Avatar answered Sep 19 '22 13:09

Anand Deep Singh


Just add the below styles to make it work img{max-width:100%;height:auto;}

Its the width of the image being set to 0 in the print which is causing the issue.

like image 34
Venkatesh Gaurav Avatar answered Sep 20 '22 13:09

Venkatesh Gaurav