28

Web アプリケーションで、クライアント上で PDF ファイルを強制的に印刷することはできますか? ブラウザーがウィンドウ内で PDF を開くように構成されている場合、window.print() の呼び出しは機能すると思いますが、一部のブラウザー (私のものなど) は PDF を外部で開くように構成されています。

4

8 に答える 8

29

google docs が行う方法は、JavaScript を PDF に埋め込んで、Acrobat Reader またはその他の準拠リーダーに印刷するように指示することです。

ランダムな PDF でこれを行うには、PDF ツールキットが必要です。

于 2008-10-15T15:32:40.330 に答える
5
<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>
于 2011-01-11T08:04:49.043 に答える
3

taeyoung の提案と同様に、iframe を使用して pdf をレンダリングし、次に contentWindow.print(); を使用できます。

于 2011-07-27T22:28:21.920 に答える
2

httpヘッダーをapplication/pdfに設定してから、javascriptで新しいウィンドウを強制的に開き、そのように印刷することができます。しかし、誰が本当にそれをするでしょうか?私は今来てください。

于 2008-12-12T21:30:07.967 に答える
1

シンプルで素晴らしいライブラリprintjs " http://printjs.crabbly.com " を使用できます。これは PDF ファイルを取得し、必要に応じて印刷ダイアログを表示せずに印刷します。以下の簡単な方法で実行できます。

 <button type="button" onclick="printJS('docs/printjs.pdf')">
    Print PDF
 </button>

于 2017-12-17T13:01:49.060 に答える
0

Javascript を使用してブラウザーから直接 PDF ドキュメントを印刷することはできません。Javascript 関数 window.print() はブラウザの印刷機能を使用しますが、これは必要なものではありません。Java Web Start を介して印刷を開始する目的を達成できます。生の PDF ドキュメントを引数として受け取る Java プログラムを実行できるように、PDF ドキュメントを jnlp に直接配置します。ブラウザではなくシステムで実行するようになったので、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 サービスから直接ダウンロードされます。一部の印刷オプションをコピー、サイドなどとして設定することもできます

于 2014-01-17T09:17:54.837 に答える
0

ファイルを強制的にプリンターに送信したいということですか? ユーザーのデバイスがプリンターに接続されていないという、意図しない結果の法則について考えていますか? BlackBerry かもしれませんし、Wi-Fi 接続のラップトップかもしれません。ユーザーが既定のプリンターに移動したくない場合はどうすればよいでしょうか?

于 2008-10-15T16:35:56.567 に答える