1

object 要素内に PDF を表示する PHP スクリプトがあります。Adobe Reader プラグインはこの問題を処理し、ユーザーは Adob​​e ツールバーを使用して埋め込まれた PDF を印刷できます。ただし、一部のユーザー(Internet Explorer 8 のユーザーの 98%) を使用して HTML ドキュメントを印刷することを主張します。この IE の [ファイル] -> [印刷] メニューを使用すると、OBJECT 要素の内容 (PDF) を除いたHTML ドキュメントが印刷されます。(印刷プレビュー) このメソッドを使用して Chrome または FF でドキュメントを印刷すると、オブジェクト ビューポートに現在表示されているデータのみが印刷されます。つまり、実際の PDF ではなく、部分的なオブジェクトです。

StackOverflow でいくつかの関連する質問検索して読みましたが、この状況やケースに固有のものはありません。これらの「ソリューション」の一部は、Javascript メソッドまたは関数を使用して、ボタンまたはリンクを介してコンテンツを印刷します。ユーザーにブラウザーの Adob​​e ツールバーを使用して PDF を印刷させることができない場合、ユーザーが気が変わって「印刷」というボタンを使用するとは思えません。

IE で File->Print メソッドを実行すると空白のページが表示されるのはなぜですか? [ファイル] -> [印刷] メニューを使用するときに、ブラウザーに Object 要素の内容を印刷させる方法はありますか。JS ハック、ボタン、「ここをクリック」へのリンク、iframe、「インラインで表示」などの提案はありません。

参考までに、この「View PDF」のコードを以下に示します (ここでも、object 要素に PDF コンテンツを表示するのに問題なく動作します)。

echo "
<html>
 <head>
  <title>View PDF</title>
 </head>
 <body scroll='no'>
  <object data='getFile.php?f={$file_hash}' type='application/pdf' width='100%' height='100%' >
  <h2>Error: No PDF plugin</h2>
  <p>The browser does not have a PDF viewer installed.  In order to view the PDF in the browser, please <a href='http://get.adobe.com/reader'>download Adobe Reader</a>. </p>
  </object>
 </body>
</html>";
4

2 に答える 2

1

私の知る限り、この問題の解決策はありません。一部の開発者が、開いたときに印刷ダイアログを自動的に表示する PDF ファイルを生成することで問題を「解決」しているのを見てきました。

別のオプションは、視覚的なあいまいさを避けるために、ツールバーとメニューを削除した新しいウィンドウに PDF ファイルを表示することです。

Window.open(url, "_blank", "location=0,menubar=0,toolbar=0");

これが機能するかどうかはわかりませんが、ブラウザの印刷イベントを検出してpdfDoc.printAll();から、Acrobat Reader オブジェクトを呼び出すことができます。

于 2012-10-10T19:03:55.043 に答える
0

HTMLとオブジェクトなしで、PDFだけを開きます。その後、ファイル - >印刷は常に機能します。

もちろん、PDF がブラウザーに表示されるか、新しいリーダー ウィンドウで開かれるかは、ブラウザー/リーダーの構成に大きく依存します。

于 2012-10-10T19:43:36.420 に答える