5

サーバーと同じネットワーク上にあるネットワークプリンターにPDFを印刷する方法があることは知っていますが、サーバーがリモートであるため、それは役に立ちません。私の状況では、ユーザーは「ラベルの印刷」へのリンクをクリックし、ラベル用にフォーマットされたPDFファイルを生成して出力します。私は現在、Adobe Readerが次のコードを使用して自動的に開くように、ファイル出力をブラウザーに「ストリーミング」しています。

header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Content-type: application/pdf");
header('Content-Disposition: attachment; filename="labels.pdf"');
readfile($ServerPathToFile);

このコードに追加して、印刷ダイアログボックスを自動的にトリガーして、[印刷]をクリックするだけで済むようにするものは他にありますか?この場合、Googleクラウドプリントはオプションではなく、ユーザー側で「特別な設定」を必要とする他のものもありません...これはさまざまなユーザーによって使用されるためです。

4

2 に答える 2

3

PDFを<iframe>同じドメインの子ウィンドウ()に出力してから、window.print()そのウィンドウを呼び出すことができます。

<p>Don't forget to print your document!</p>
<iframe src="/path/to/your/pdfgenerator.php" id="mypdf"></iframe>

<script>
function printIframe(id) {
    var iframe = document.frames ? document.frames[id] : document.getElementById(id);
    var ifWin = iframe.contentWindow || iframe;
    iframe.focus();
    ifWin.printPage();
    return false;
}
</script>

iframeページで、これを追加します。

function printPage() {
    print();
}
于 2012-12-06T04:05:58.887 に答える
0

ブラウザからネットワーク上のdymoラベルプリンタにラベルを印刷するプロジェクトをやめました。これはjavascriptで行う必要があります。私はDymoのSDKを使用し、キオスクに登録した人が名前タグを自動印刷するための独自のカスタムインターフェイスを作成しました。その後、メインのチェックインステーションでネームバッジが待っていました。

私が使用したsrciptはサーバーにインストールするだけでよく、ネットワーク内の他のすべてのsrciptはネットワークプリンターに印刷できました。

于 2012-12-06T04:01:57.897 に答える