Webアプリケーションでは、PDFファイルをクライアントで強制的に印刷できますか?ブラウザーがウィンドウ内でPDF 、window.print()の呼び出しは機能すると思いますが、一部のブラウザ(私のようなもの)はPDF外部で開くように設定されています。
Googleドキュメントが行う方法は、JavaScriptをPDFに埋め込み、Acrobat Readerまたはその他の準拠リーダーに印刷するよう指示することです。
ランダムPDFでこれを行うには、PDFツールキットが必要です。
<html>
<script language="javascript">
timerID = setTimeout("exPDF.print();", 1000);
</script>
<body>
<object id="exPDF" type="application/pdf" data="111.pdf" width="100%" height="500"/>
</body>
</html>
taeyoungの提案と同様に、iframeを使用してpdfをレンダリングし、contentWindow.print()を使用できます。
httpヘッダーをapplication/pdfに設定してから、javascriptで新しいウィンドウを強制的に開き、その方法で印刷できます。しかし、誰が本当にそうするのでしょうか?今すぐに来ることを意味します。
シンプルな驚くべきライブラリprintjs " http://printjs.crabbly.com "を使用できますPDFファイルし、必要に応じて印刷ダイアログを表示せずに印刷します。以下の簡単な方法:
<button type="button" onclick="printJS('docs/printjs.pdf')">
Print PDF
</button>
Javascriptを使用してブラウザから直接PDFドキュメントを印刷することはできません。Javascript関数window.print()はブラウザの印刷機能を使用しますが、これは必要なものではありません。 Java Web Start。PDFドキュメントをjnlpに直接入れて、Java引数として生のPDFドキュメントを受け取ります。これで、システムで実行され、ブラウザでなくなったので、Java = API。これは非常に単純に見えますが、実際にはJava印刷APIはファイルを入力として受け入れませんが、ava.awt.print.Pageableインターフェースを実装する特定のデータ構造を受け入れます。
www.pdfprint.it にWebサービスが存在し、すべての作業を実行します。公式ドキュメントから抜粋した抜粋です。
<?php
// 1. GET the jnlp file with curl
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.pdfprint.it/printPdf?auth=XXXX");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //return the transfer as a string
$jnlp = curl_exec($ch);
curl_close($ch);
$pdfDoc ="example.pdf";
//2. put in the jnlp your PDF document base64 encoded
$jnlp = str_replace("####", base64_encode(file_get_contents($pdfDoc)),$jnlp);
//3. echo the jnlp file
header('Content-type: application/x-Java-jnlp-file');
echo $jnlp;
Jnlpファイルを取得し、PDF文書に入れてjnlpをブラウザに送信するだけです。印刷を実行するJavaプログラムがダウンロードされますWebサービスから直接。コピー、サイドなどの一部の印刷オプションを設定することもできます。
ファイルをプリンターに強制的に送信したいということですか?意図しない結果の法則について考えていますか?ユーザーのデバイスがプリンターに接続されていませんか? BlackBerryでも、wi-fiのラップトップでもかまいません。ユーザーがデフォルトのプリンターに行きたくない場合はどうなりますか?