Maison  >  Article  >  interface Web  >  Comment activer l'impression PDF silencieuse à partir de JavaScript sans intervention de l'utilisateur ?

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

Barbara Streisand
Barbara Streisandoriginal
2024-10-20 20:17:02283parcourir

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>

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>

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!

Déclaration:
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