2013-05-17 25 views
5

読み込んだPDFファイルの印刷をトリガーしたいと思います。Chrome/Firefox/IEのiframe経由でPDFを印刷

周りを探した後、私は次のビット

<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> 

これは、Chromeで完璧に動作を思い付きました。 Firefoxので

、私は(私はどこかで読んそれがバージョン21に固定されるようになっていたバグだったが、それはありませんでした)「印刷」プロパティにアクセスするために拒否された

許可を次のエラーを取得 Internet Explorerの10と9では

、私は次のエラー

無効を取得

オブジェクトを呼び出したpに思われます私のMVCアクションによって生成されたPDFにoint。

私は、私のような問題を抱えた多数の投稿を見てきましたが、これまでのところ解決策を見つけていません。私が本当に知りたいと思う何

がRADPDFは、すべてのブラウザで

Click the print button on this page

を、この作業を取得するために管理する方法である私は、私はそこにあなたの脳からの助けを必要とし、これを行うことができます知っています!

乾杯

+0

こんにちは、これを理解しましたか?ケアを共有する? – BelgoCanadian

答えて

3

以下を試してみると、すべてのブラウザで動作する可能性があります。 (私はIE8とクロムのみでテストしました)

<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>