web-dev-qa-db-ja.com

JavaScriptを使用してPDFファイルをプリンターに直接送信する方法は?

JavaScriptを使用してPDFファイルをプリンターに直接送信する方法は?

フォーラムで2つの答えを見つけました。

<embed src="vehinvc.pdf" id = "Pdf1" name="Pdf1" hidden>
<a onClick="document.getElementById('Pdf1').printWithDialog()" style="cursor:hand;">Print file</a>

そして

<OBJECT id = "Pdf2" name="Pdf2" CLASSID="clsid:CA8A9780-280D-11CF-A24D-444553540000" WIDTH="364" HEIGHT="290">
     <PARAM NAME='SRC' VALUE="file.pdf">
</OBJECT>
<a onClick="document.Pdf2.printWithDialog()">Print file</a> 

しかし、私の問題は、IEでのみ動作し、FirefoxまたはChromeでは動作しないことです。

これに対する解決策はありますか?

33
Jignesh Manek

JavaScriptのこのライブラリはあなたを助けるかもしれないと思う:

Print.jsと呼ばれます

最初に含める

_<script src="print.js"></script>
<link rel="stylesheet" type="text/css" href="print.css">
_

基本的な使い方は、printJS()を呼び出して、PDF document url:printJS('docs/PrintJS.pdf')

PDFドキュメントが大きすぎる場合は、これも「読み込み中...」と表示されます。

_<button type="button" onclick="printJS({printable:'docs/xx_large_printjs.pdf', type:'pdf', showModal:true})">
    Print PDF with Message
</button>
_

ただし、次のことに注意してください。

Firefoxは現在、iframeを使用したドキュメントの印刷を許可していませんPDFドキュメント。MozillaのWebサイトには、これに関するオープン バグ があります。Firefoxを使用すると、Print.js PDFファイルを新しいタブに開きます。

11
zsubzwary

あなたが取る必要がある2つのステップがあります。

最初に、PDFをiframeに入れる必要があります。

  <iframe id="pdf" name="pdf" src="document.pdf"></iframe>

Iframeを印刷するには、こちらの回答をご覧ください。

Javascript iframeコンテンツのみを印刷

PDFがロードされた後にiframeを自動的に印刷したい場合は、onloadハンドラーを<iframe>に追加できます。

  <iframe onload="isLoaded()" id="pdf" name="pdf" src="document.pdf"></iframe>

ローダーは次のようになります。

function isLoaded()
{
  var pdfFrame = window.frames["pdf"];
  pdfFrame.focus();
  pdfFrame.print();
}

これにより、ブラウザーの印刷ダイアログが表示され、PDFドキュメント自体のみが印刷されます。か否か)。

私はこのコードをSafariとChromeでほとんど逐語的に使用していますが、IEまたはFirefox。

8
Doctor Eval

これを試してください:PDFファイルだけが埋め込まれたWebページを(新しいウィンドウで)開くボタン/リンクを用意し、Webページを印刷します。

メインページの先頭:

<script type="text/javascript">
function printpdf() 
{
myWindow=window.open("pdfwebpage.html");
myWindow.close;  //optional, to close the new window as soon as it opens
//this ensures user doesn't have to close the pop-up manually
}
</script>

メインページの本文:

<a href="printpdf()">Click to Print the PDF</a>

Pdfwebpage.html内:

<html>
<head>    
</head>

<body onload="window.print()">
<embed src="pdfhere.pdf"/>

</body>
</html>
5
Dhruv Murarka

印刷トリガーを収容する機能...

function printTrigger(elementId) {
    var getMyFrame = document.getElementById(elementId);
    getMyFrame.focus();
    getMyFrame.contentWindow.print();
}

ユーザーにアクセスを許可するボタン...

(an onClick on an a or button or input or whatever you wish)

<input type="button" value="Print" onclick="printTrigger('iFramePdf');" />
an iframe pointing to your PDF...

<iframe id="iFramePdf" src="myPdfUrl.pdf" style="dispaly:none;"></iframe>

詳細: http://www.fpdf.org/en/script/script36.php

0
Joe Solutions