ユーザーの介入なしで JavaScript からサイレント PDF 印刷を有効にする方法

Barbara Streisand
リリース: 2024-10-20 20:17:02
オリジナル
282 人が閲覧しました

How to Enable Silent PDF Printing from JavaScript without User Intervention?

JavaScript からの PDF の直接印刷

PDF が普及するにつれ、ユーザーが PDF を PDF 内から直接印刷できるようにする必要が生じることがよくあります。ウェブアプリケーション。ただし、印刷前に PDF ビューアを開いたり、PDF を表示したりすると、ユーザー フローが中断される可能性があります。この記事では、ユーザーの介入なしに PDF の印刷ダイアログをサイレントに開く解決策について説明します。

アプローチの概要

以前は、 を使用することが可能でした。タグを使用して PDF をドキュメントに挿入し、ロードされた埋め込み要素で .print() メソッドをトリガーします。ただし、コメントで述べたように、最近のブラウザではこのメソッドの機能が廃止されています。

代替ソリューション

代替アプローチには、非表示の iframe を使用し、その中でドキュメントを操作することが含まれます。 PDF を iframe に埋め込み、ユーザーが意識することなくそのコンテキスト内から印刷できます。

次のコード スニペットを考えてみましょう:

<code class="html"><iframe id="pdf-iframe" style="display: none;"></iframe></code>
ログイン後にコピー

これにより、ID が「pdf」の非表示の iframe が作成されます。 -iframe."

JavaScript では、iframe のドキュメントを操作して PDF をロードし、印刷を開始できます。

<code class="javascript">function printPdf() {
  // Get the iframe document
  const iframeDoc = document.getElementById('pdf-iframe').contentDocument;
  
  // Create an embed element with the PDF source
  const embed = iframeDoc.createElement('embed');
  embed.setAttribute('src', 'path_to_pdf_document.pdf');
  embed.setAttribute('type', 'application/pdf');
  embed.style.display = 'none';
  
  iframeDoc.body.appendChild(embed);
  
  // Wait for the PDF to load
  setTimeout(() => {
    embed.print();
  }, 1000); // Adjust the timeout as needed
}</code>
ログイン後にコピー

この手法は、embed 要素を使用して前のメソッドの動作を模倣します。 iframe 内で、CSS を通じて非表示にします。 PDF が完全にロードされたことを確認するために、少し遅れて print() メソッドが呼び出されます。

このアプローチを利用すると、ユーザー エクスペリエンスを中断することなく、JavaScript から直接 PDF をシームレスに印刷できます。

以上がユーザーの介入なしで JavaScript からサイレント PDF 印刷を有効にする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!