4 返信 最新の回答 日時: Dec 4, 2002 5:25 PM ユーザー:(Bubbles34)

    クライアントスクリプトで自動印刷する際に印刷中ダイアログを表示したい

      クライアントスクリプトを使用して、WebページからPDFファイルの全ページ内容をクライアント側プリンタに自動印刷する処理を行っています。
      以下のソースで印刷処理を行った場合、問題なく出力はされますが、印刷中ダイアログが表示されないためプリンタにスプール完了したかどうかが分かりません。
      ちなみにAcrobat Readerで直接PDFファイルを開いて「印刷」ボタンクリックで印刷した
      場合には表示されます。
      クライアントスクリプトで自動印刷する時も、印刷中ダイアログを表示するにはどうすればよいのでしょうか?
      ご存知の方がいらっしゃいましたらご教授願います。

      印刷中ダイアログは、以下のメッセージが[キャンセル]ボタンと一緒に表示される標準ダイアログです。
      ・対象となるPDFファイル名
      ・出力先プリンタ名
      ・ページ数

      (環境:Windows2000+Ie5.01以上)

      以下:印刷処理ソース
       ※ HTMLタグは意図的に[]に変更してあります。実際は<>を使用しています。

      [HTML]
      [HEAD]
      [SCRIPT LANGUAGE="VBScript"]
      [!--
      Sub PdfPrint()
      objPDF.PrintAll
      End Sub
      --]
      [/SCRIPT]
      [/HEAD]
      [BODY ONLOAD="PdfPrint()"]
      [OBJECT ID="objPDF" CLASSID="CLSID:CA8A9780-280D-11CF-A24D-44553540000"]
      [PARAM NAME="src" VALUE="PDFファイルのURL"]
      [/OBJECT]
      [/BODY]
      [/HTML]
        • 1. Re: クライアントスクリプトで自動印刷する際に印刷中ダイアログを表示したい
          前後の処理が分からないので何とも言えない部分もありますが、上記の方法だと、ユーザーの意志とは関係なしに印刷されてしまうということですよね。これは余りほめられたものではないように思い ますが?
          投稿主が印刷ダイアログを求めているのは別の意味があるようですが、私にはユーザーの意志とは無関係にプリンターに印刷されるのはやめて欲しいと感じます。リンク先を開いたら、知らずにプリン ターに大量の印刷物が・・・なんてこともあり得るのでは?

          Acrobat5.0であれば、以下の方法が可能です。
          Docオブジェクトのメソッド「Print」を使って、ボタンフィールドに割り当てればよいでしょう。「Print」は初期設定では印刷ダイアログを出すようになっています。一番シンプルなの は「this.print();」でしょう。
          ボタンフィールドは「印刷時非表示」にすれば、印刷されません。

          「Acrobat JavaScriptヘルプガイド日本語版」の134頁より(抜粋)
          ------------------------------------------------------------------------------------
          ・print
          パラメータ:[bUI] 、[nStart] 、[nEnd] 、[bSilent] 、[bShrinkToFit] 、[bPrintAsImage] 、[bReverse] 、[bAnnotations]
          戻り値:なし
          このメソッドは、ドキュメントの全ページまたは特定のページを印刷します。
          bUI がtrue(デフォルト)の場合、指定したパラメータが印刷ダイアログのUI にセットされてユーザに表示されるので、ユーザは足りない情報を設定したり内容を確認したりすることができます。
          bSilent がtrue の場合、キャンセルダイアログを表示せずにドキュメントを印刷します。デフォルトはfalse です。
          ------------------------------------------------------------------------------------

          すでに承知でしょうが、PDFファイルをHTML内に埋め込むことが出来ます(リンクとは異なる)。このとき、Internet ExporerではPDF文書のツールバーが表示されるはずなので、ツールバーにある[印刷]ボタンから印刷が可能です(NetScapeではうまくいかない可能性が高い)。多分、このとき は印刷ダイアログがでると思います。
          ---------------------------------------------------------------
          サポート文書番号 216024 Acrobat 4.0/5.0(Mac/Win):
          HTML に PDF ファイルを埋め込みする方法
          ・サイト”KeiYu HelpLab”内の「HTML文書にPDF文書を埋め込むには」
          http://www.keiyu.com/doc/pdflink.htm
          • 2. Re: クライアントスクリプトで自動印刷する際に印刷中ダイアログを表示したい
            元投稿に示されたプログラムのうち、「objPDF.PrintAll」の箇所を「objPDF.printWithDialog」に変更してみてください。印刷ダイアログが表示されませんか ?
            私の環境(WindowsNT4.0SP6a、Acrobat5.0.5、IE6.0SP1)で、ローカルPCのHTML文書という条件ですが、変更することでダイアログ無しの印刷からダイア ログ表示印刷に変更されました。

            これは以下のサイトを参考にしたものです。このサイトはWSHでの利用を目論んでいるものらしいのですが、WSHとActiveX とでブラウザ内PDFのコントロールが可能のように書かれてあります。
            ここにはこれ以外にも「gotoNextPage」「setZoom 」などがあり、うまくすれば使えるかもしれません。
            -----------------------------------------------------------
            ・Scripting with Adobe Acrobat ActiveX control (PDF.OCX)
            http://www.borncity.com/WSHBazaar/News5.htm

            WSH(Windows Script Host)の本は書店でも見かけますが、もしかしたらそちらに関連記述があるかも。
             
            • 3. Re: クライアントスクリプトで自動印刷する際に印刷中ダイアログを表示したい
              Level 1
              namazuさん、返信ありがとうございます。
              説明が足りなかったようですね。(今後はもっと詳しく記載するように気をつけます。)

              まず、全体的な処理を以下に示します。
              1.親画面には「プレビュー」及び「印刷」ボタンを配置。
              2.「プレビュー」ボタン押下時は、主処理にてPDFファイルを作成し、子画面(実際は別フレーム)にそのPDFを埋め込み表示。
                このケースでは表示された内容を印刷する場合、ツールバーの「印刷」ボタンをユーザー自身が押す。
              3.「印刷」ボタン押下時は、主処理にてPDFファイルを作成までは同じですが、プレビューせずに直接プリンタに出力となります。

              今回の質問では上記3.のケースの場合に関してです。
              objPDF.printWithDialogにすれば「印刷確認ダイアログ」が表示されることは分かっていましたが、親画面の「印刷」ボタンをクリックした後は、その他のユーザー操作ダイア ログは一切表示せずに印刷を行いたいのです。また、印刷中ダイアログを表示した理由は以下の通りです。
              「印刷」ボタン押下後は、画面上に印刷処理実行中であることを示すメッセージを表示しているのですが、PDFファイル内の全ページがスプール完了する前に画面を閉じてしまうとプリンターキュー から削除されてしまいます。
              よって「印刷中ダイアログ」を表示してスプール完了したことをユーザーに分かるようにしたいのです。

              ダラダラと記述してしまいましたが、以上の説明でイメージは掴めますでしょうか?
              • 4. Re: クライアントスクリプトで自動印刷する際に印刷中ダイアログを表示したい
                Level 1
                Bubbles34です。
                説明がもれてました。
                ここでの「印刷中ダイアログ」とは、最初の投稿時に説明してありますが、Acrobat Readerで直接PDFファイルを開いてから印刷した場合に標準で表示されるダイアログのことです。
                例えば10ページの文書を印刷した時に、1→2→3・・・・10ページと現在スプール中であることを示すダイアログが表示されるはずです。
                それをクライアントスクリプトから自動印刷する場合にも表示したいのですが、何故か表示されません。