首頁 >web前端 >js教程 >如何在無需使用者乾預的情況下從 JavaScript 啟用靜默 PDF 列印?

如何在無需使用者乾預的情況下從 JavaScript 啟用靜默 PDF 列印?

Barbara Streisand
Barbara Streisand原創
2024-10-20 20:17:02391瀏覽

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

直接從 JavaScript 列印 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 已完全加載。

以上是如何在無需使用者乾預的情況下從 JavaScript 啟用靜默 PDF 列印?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn