2017-02-03 1 views
0

Je crée un pdf à partir d'un script php et je veux que ce pdf s'imprime dès que l'utilisateur l'ouvre. Sans plus d'interaction. Pour cela je l'ai découvert, que je peux ajouter un javascript qui peut rendre l'impression automatique, et théoriquement même sans fenêtres popup ou alertes.Comment faire pour supprimer `Ce document essaie d'imprimer. Voulez-vous autoriser cela? `

J'ai essayé toutes les combinaisons de javascript pour intégrer que je pouvais trouver sur tous les forums, i.e.,:.

  1. Réglage interactionLevel en mode silencieux ou automatique.

    $script = "var pp = getPrintParams(); pp.interactive = pp.constants.interactionLevel.silent; this.print(pp);"

  2. Ancien:

$script = 'this.print({bUI: false, bSilent: true});

  1. Réglage de la fonction à PRIVILÉGIÉ:

$script = "sPrint = app.trustedFunction( function(){ app.beginPriv(); this.print({bUI:false, bSilent:true}); app.endPriv(); }); sPrint();"

J'ai même essayé d'ajouter à enregistrer les champs

Acrobat Reader/DC/AVAlert/cCheckbox/cAcrobat/iWarnScriptPrintAll=1 Acrobat Reader/DC/EWH/bExecutePrint=1

Mais je ne peux toujours pas se débarrasser de la fenêtre d'alerte contextuelle quand j'ouvre le pdf. J'ai essayé de l'ouvrir dans Adobe Reader DC et aussi dans Foxit. Je reçois le même avertissement:

Ce document essaie d'imprimer. Voulez-vous autoriser cela?

Est-ce que quelqu'un sait comment supprimer cette fenêtre contextuelle? Je vous remercie.

Répondre

1

Vous ne pouvez pas, sans le consentement de l'utilisateur ou l'activer. Vous pouvez faire en sorte que le script imprime silencieusement dans l'une des conditions suivantes, mais dans chaque cas, l'utilisateur doit activer l'une des actions suivantes.

  1. Le script qui vous permet d'appeler une fonction sécurisée pour une impression silencieuse doit être installé sur l'ordinateur de l'utilisateur dans un dossier privilégié.
  2. Le document peut être enregistré dans un dossier privilégié.
  3. Vous pouvez demander à l'utilisateur d'ajouter votre domaine à la liste des domaines privilégiés.
    1. Signez le document et demandez à l'utilisateur de faire confiance à votre certificat.

Voir la section Privileged Contexte de la documentation Acrobat JavaScript http://help.adobe.com/en_US/acrobat/acrobat_dc_sdk/2015/HTMLHelp/Acro12_MasterBook/JS_API_AcroJSPreface/Privileged_context.htm

+0

Puisque l'utilisateur peut recevoir le pdf aussi par e-mail, pour moi, il semble que seul point 4. est possible. Mais alors ma question suivante est comment puis-je signer un fichier pdf à partir d'un script php? – pisoir

+0

Je ne suis pas sûr qu'il existe des bibliothèques PHP qui peuvent signer le PDF, cependant, vous pouvez utiliser n'importe quel nombre de bibliothèques pour cela et utiliser l'exec PHP pour l'appeler via une ligne de commande.Mais même ainsi, l'utilisateur devrait faire confiance à votre CERT avant de pouvoir imprimer en silence. Cela dit, si j'ouvrais un fichier PDF et que je commençais à imprimer, je serais plutôt en colère. – joelgeraci

+0

@joelgeraci a raison! Si le document est certifié et que le certificat est approuvé pour effectuer des opérations système privilégiées, cela fonctionne très bien. Je viens de le tester (je vais supprimer ma réponse en faveur de celui-ci). Si vous avez besoin de créer cette tâche en PHP pur, vous pouvez consulter nos [solutions de signature] (https://www.setasign.com/signer). –