2013-05-17 17 views
5

Chcę uruchomić wydruk pliku PDF, który wczytuję i element iframe.Wydrukuj plik PDF za pomocą elementu iframe w przeglądarce Chrome/Firefox/IE

Po rozglądając się, wpadłem na następujący bit

<iframe name="pdfname" id="pdfid"></iframe> 

<button id="printbtn">Print</button> 

<script language="javascript" type="text/javascript"> 
    $(document).ready(function() { 

     $("#pdfid").load(function() { 
      window.frames["pdfname"].focus(); 
      window.frames["pdfname"].print(); 
     }); 

     $("#printbtn").click(function() { 
      $("#pdfid").attr("src", '@Url.Action("PdfTest", "Home")'); 
     }); 
    }); 
</script> 

Działa to doskonale w Chrome.

W Firefox, pojawia się następujący błąd (Czytałem gdzieś, że był to błąd, który miał być poprawione w wersji 21, ale to nie było)

Odmowa uprawnień, aby uzyskać dostęp właściwość „Print”

W programie Internet Explorer 10 i 9, pojawia się następujący błąd

Nieprawidłowy obiekt wywołujący

co wydaje się p do pliku PDF wygenerowanego przez moją akcję MVC.

Widziałem wiele postów z problemami podobnymi do moich, ale do tej pory nie natknąłem się na działające rozwiązanie.

Co ja naprawdę chcę wiedzieć, jak RADPDF udało się uzyskać tej pracy w każdej przeglądarce

Click the print button on this page

wiem, można to zrobić, potrzebuję pomocy od was mózgi tam!

Pozdrowienia

+0

Witam, czy kiedykolwiek to rozgryzłeś? Chcesz się podzielić? – BelgoCanadian

Odpowiedz

3

Wypróbuj następujące rozwiązania, które mogą działać we wszystkich przeglądarkach. (Testowałem tylko z IE8 i chrome)

<style type="text/css"> 
    @media print 
    { 
     .dontprint{display:none} 
    } 
</style> 
<script type="text/javascript"> 
    function printIframePdf(){ 
     window.frames["printf"].focus(); 
     try { 
      window.frames["printf"].print(); 
     } 
     catch(e){ 
      window.print(); 
      console.log(e); 
     } 
    } 
    function printObjectPdf() { 
     try{    
      document.getElementById('idPdf').Print(); 
     } 
     catch(e){ 
      printIframePdf(); 
      console.log(e); 
     } 
    } 

    function idPdf_onreadystatechange() { 
     if (idPdf.readyState === 4) 
      setTimeout(printObjectPdf, 1000); 
    } 
</script> 
<div class="dontprint" > 
    <form><input type="button" onClick="printObjectPdf()" class="btn" value="Print"/></form> 
</div> 

<iframe id="printf" name="printf" src="http://pdfUrl.pdf" frameborder="0" width="440" height="580" style="width: 440px; height: 580px;display: none;"></iframe> 
<object id="idPdf" onreadystatechange="idPdf_onreadystatechange()" 
    width="440" height="580" style="width: 440px; height: 580px;" type="application/pdf" 
    data="http://pdfUrl.pdf"> 
    <embed src="http://pdfUrl.pdf" width="440" height="580" style="width: 440px; height: 580px;" type="application/pdf"> 
    </embed> 
    <span>PDF plugin is not available.</span> 
</object> 
Powiązane problemy