IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Javascript sur PDF avec la librairie FDPF


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 6
    Par défaut Javascript sur PDF avec la librairie FDPF
    Bonjour,

    J'essaye de lancer une impression d'un document PDF sans afficher la boite de dialogue en utilisant les fonctions de FPDF.PHP et FPDF_JS.PHP. La seule chose est que l'impression ne se lance pas, en fait le morceau de code javascript n'est pas exécuté. Quelqu'un pourrait-il m'aider à résoudre ce problème ?

  2. #2
    Modérateur
    Avatar de Vil'Coyote
    Homme Profil pro
    Développeur adélia & Web
    Inscrit en
    Février 2008
    Messages
    4 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur adélia & Web
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2008
    Messages : 4 583
    Par défaut
    salut,
    un peu de code ça serait bien.
    la vie n'est pas cirrhose des foies ...

    Avant de poster un message Rechercher n'est pas qu'une option.
    FAQ Web - Tuto Web

  3. #3
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    a tout hasard essaye:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    window.print('document.pdf');
    ou encore:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <html>
    <head>
    <script type='text/javascript'>
    function imprimePDF() {
    var x = document.getElementById("PDF");
    x.focus();
    x.print();
    }
    </script>
     
    <body>
    <object id="PDF" data='test.pdf' name="whatever" style="height:0px; width:0px;">
    </object>
    <input type="button" onclick="imprimePDF()" value="imprimer" />
    </body>
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  4. #4
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 6
    Par défaut Javascript sur PDF
    Bonjour,
    La fonction "print" lance une impression en passant par la boite de dialogue.

    la librairie utilisée dans mon script c'est "fpdf.php" disponible sur www.fpdf.org
    J'ai aussi intégré le fichier "fpdf_js.php" disponible sur la même adresse sur la rubrique "Support JavaScript".

    voici le code du fichier fpdf_js.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    <?php
    require('fpdf.php');
     
    class PDF_Javascript extends FPDF {
     
            var $javascript;
            var $n_js;
     
            function IncludeJS($script) {
                    $this->javascript=$script;
            }
     
            function _putjavascript() {
                    $this->_newobj();
                    $this->n_js=$this->n;
                    $this->_out('<<');
                    $this->_out('/Names [(EmbeddedJS) '.($this->n+1).' 0 R ]');
                    $this->_out('>>');
                    $this->_out('endobj');
                    $this->_newobj();
                    $this->_out('<<');
                    $this->_out('/S /JavaScript');
                    $this->_out('/JS '.$this->_textstring($this->javascript));
                    $this->_out('>>');
                    $this->_out('endobj');
            }
     
            function _putresources() {
                    parent::_putresources();
                    if (!empty($this->javascript)) {
                            $this->_putjavascript();
                    }
            }
     
            function _putcatalog() {
                    parent::_putcatalog();
                    if (isset($this->javascript)) {
                            $this->_out('/Names <</JavaScript '.($this->n_js).' 0 R>>');
                    }
            }
    }
    ?>
    Et le code pour lancer l'impression avec ou sans boite de dialogue en passant true or false dans la fonction AutoPrint :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    <?php
    define('FPDF_FONTPATH','font/');
    require('fpdf_js.php');
     
    class PDF_AutoPrint extends PDF_Javascript
    {
    function AutoPrint($dialog=false)
    {
    	//Lance la boîte d'impression ou imprime immediatement sur l'imprimante par défaut
    	$param=($dialog ? 'true' : 'false');
    	$script="print($param);";
    	$this->IncludeJS($script);
    }
     
    function AutoPrintToPrinter($server, $printer, $dialog=false)
    {
    	//Imprime sur une imprimante partagée (requiert Acrobat 6 ou supérieur)
    	$script = "var pp = getPrintParams();";
    	if($dialog)
    		$script .= "pp.interactive = pp.constants.interactionLevel.full;";
    	else
    		$script .= "pp.interactive = pp.constants.interactionLevel.automatic;";
    	$script .= "pp.printerName = '\\\\\\\\".$server."\\\\".$printer."';";
    	$script .= "print(pp);";
    	$this->IncludeJS($script);
    }
    }
     
    $pdf=new PDF_AutoPrint();
    $pdf->Open();
    $pdf->AddPage();
    $pdf->SetFont('Arial','',20);
    $pdf->Text(80, 50, 'Imprimez-moi !');
    //Ouvre la boîte d'impression
    $pdf->AutoPrint(true);
    $pdf->Output();
    ?>
    Merci d'avance pour vos réponses

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    fpdf => c'est du php, ça ne fait que generer du code html pour afficher le pdf.
    coté php tu ne pourras pas gerer l'impression.
    Et coté client en javascript tu n'as que les deux possibilités données ...
    l'affichage de la boite de dialogue est un paramètres de l'OS du client et javascript n'as pas accès a ces paramètres ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  6. #6
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 6
    Par défaut
    Merci pour cette réponse mais ce n'est malheureusement pas la bonne. Je te propose d'aller sur le site www.fpdf.org -> Scripts -> Support Javascript et tu verras qu'il y a moyen de commander une impression sans boite de dialogue en intégrant du Javascript à l'ouverture du document PDF.

Discussions similaires

  1. un menu géré avec javascript sur plusieurs niveaux (logique)
    Par polothentik dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 02/07/2008, 14h23
  2. lire un dessin sur un pdf avec itext
    Par mm2405 dans le forum Documents
    Réponses: 5
    Dernier message: 23/04/2007, 11h03
  3. probleme ouverture pdf avec SSL sur IE
    Par chess75 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 26/09/2006, 22h43
  4. [Librairies] [Lire sur un fichier Word ou PDF avec PHP]
    Par amatollah dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 10/05/2006, 07h58
  5. Construire chemin sur bouton avec évt Javascript
    Par Ph. B. dans le forum XMLRAD
    Réponses: 4
    Dernier message: 27/05/2003, 10h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo