Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk Mendayakan Pencetakan PDF Senyap daripada JavaScript tanpa Campur Tangan Pengguna?

Bagaimana untuk Mendayakan Pencetakan PDF Senyap daripada JavaScript tanpa Campur Tangan Pengguna?

Barbara Streisand
Barbara Streisandasal
2024-10-20 20:17:02283semak imbas

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

Pencetakan PDF Terus daripada JavaScript

Dengan adanya PDF di mana-mana, sering timbul keperluan untuk membolehkan pengguna mencetaknya terus dari dalam aplikasi web. Walau bagaimanapun, membuka pemapar PDF atau memaparkan PDF sebelum mencetak boleh mengganggu aliran pengguna. Artikel ini meneroka penyelesaian untuk membuka dialog Cetak secara senyap untuk PDF tanpa campur tangan pengguna.

Gambaran Keseluruhan Pendekatan

Sebelum ini, anda boleh menggunakan tag untuk menyuntik PDF ke dalam dokumen dan kemudian mencetuskan kaedah .print() pada elemen terbenam setelah dimuatkan. Walau bagaimanapun, seperti yang dinyatakan dalam ulasan, penyemak imbas moden telah menafikan fungsi kaedah ini.

Penyelesaian Gantian

Pendekatan alternatif melibatkan penggunaan iframe yang tidak kelihatan dan memanipulasi dokumen di dalamnya. Anda boleh membenamkan PDF dalam iframe dan mencetaknya dari dalam konteks tersebut tanpa kesedaran pengguna.

Pertimbangkan coretan kod berikut:

<code class="html"><iframe id="pdf-iframe" style="display: none;"></iframe></code>

Ini mencipta iframe tersembunyi dengan id "pdf -iframe."

Dalam JavaScript, anda boleh memanipulasi dokumen iframe untuk memuatkan PDF dan memulakan pencetakan:

<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>

Teknik ini meniru gelagat kaedah sebelumnya dengan menggunakan elemen benam dalam iframe, yang kemudiannya dibuat tidak kelihatan melalui CSS. Kaedah print() dipanggil selepas kelewatan singkat untuk memastikan PDF telah dimuatkan sepenuhnya.

Dengan menggunakan pendekatan ini, anda boleh mencetak PDF terus daripada JavaScript dengan lancar tanpa mengganggu pengalaman pengguna.

Atas ialah kandungan terperinci Bagaimana untuk Mendayakan Pencetakan PDF Senyap daripada JavaScript tanpa Campur Tangan Pengguna?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn