Maison > interface Web > js tutoriel > le corps du texte

Comment activer l'impression PDF silencieuse à partir de JavaScript sans intervention de l'utilisateur ?

Barbara Streisand
Libérer: 2024-10-20 20:17:02
original
282 Les gens l'ont consulté

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

Impression directe de PDF à partir de JavaScript

Avec l'omniprésence des PDF, il devient souvent nécessaire de permettre aux utilisateurs de les imprimer directement à partir d'un application Web. Cependant, l'ouverture d'une visionneuse PDF ou l'affichage du PDF avant l'impression peut perturber le flux utilisateur. Cet article explore une solution pour ouvrir silencieusement la boîte de dialogue Imprimer d'un PDF sans intervention de l'utilisateur.

Présentation de l'approche

Auparavant, il était possible d'utiliser l'option tag pour injecter le PDF dans le document puis déclencher la méthode .print() sur l'élément incorporé une fois chargé. Cependant, comme mentionné dans les commentaires, les navigateurs modernes ont supprimé la fonctionnalité de cette méthode.

Solution alternative

Une approche alternative consiste à utiliser une iframe invisible et à manipuler le document qu'elle contient. Vous pouvez intégrer le PDF dans l'iframe et l'imprimer à partir de ce contexte sans que l'utilisateur en soit conscient.

Considérez l'extrait de code suivant :

<code class="html"><iframe id="pdf-iframe" style="display: none;"></iframe></code>
Copier après la connexion

Cela crée une iframe cachée avec l'identifiant "pdf -iframe."

En JavaScript, vous pouvez manipuler le document iframe pour charger le PDF et lancer l'impression :

<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>
Copier après la connexion

Cette technique imite le comportement de la méthode précédente en utilisant l'élément embed dans une iframe, qui est ensuite rendue invisible via CSS. La méthode print() est appelée après un bref délai pour garantir que le PDF est entièrement chargé.

En utilisant cette approche, vous pouvez imprimer de manière transparente des PDF directement à partir de JavaScript sans perturber l'expérience de l'utilisateur.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!