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

Langage PHP Discussion :

Dompdf et php 8.3.14


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Homme Profil pro
    Cobol sur Mainframe et Unix AIX
    Inscrit en
    Mars 2012
    Messages
    209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Cobol sur Mainframe et Unix AIX

    Informations forums :
    Inscription : Mars 2012
    Messages : 209
    Par défaut Dompdf et php 8.3.14
    Bonjour,
    J'ai téléchargé la version 3.1.4 de Dompdf ici https://github.com/dompdf/dompdf/releases.
    J'ai cette erreur :
    Fatal error: Uncaught ValueError: mb_convert_encoding(): Argument #3 ($from_encoding) contains invalid encoding "1" in /Users/eddy/Library/Mobile Documents/com~apple~CloudDocs/php_dev/SCF/core/pages/dompdf/vendor/dompdf/dompdf/src/Dompdf.php:458 Stack trace: #0 /Users/eddy/Library/Mobile Documents/com~apple~CloudDocs/php_dev/SCF/core/pages/dompdf/vendor/dompdf/dompdf/src/Dompdf.php(458): mb_convert_encoding('\n<style>\n@page ...', 'UTF-8', '1') #1 /Users/eddy/Library/Mobile Documents/com~apple~CloudDocs/php_dev/SCF/core/pages/benevolat_note_frais.php(371): Dompdf\Dompdf->loadHtml('\n<style>\n@page ...', true) #2 {main} thrown in /Users/eddy/Library/Mobile Documents/com~apple~CloudDocs/php_dev/SCF/core/pages/dompdf/vendor/dompdf/dompdf/src/Dompdf.php on line 458
    Il manque des répertoires, par exemple, srx. Il manque également des fichiers dans dompdf/lib.

    Savez-vous où je pourrais avoir un site pour avoir une version complète ?
    J'ai bien récupérer les répertoires & fichiers dans l'ancienne version de dompdf, mais il y a des erreurs.

    Merci

    Eddy

  2. #2
    Membre émérite
    Homme Profil pro
    Autre
    Inscrit en
    Juillet 2021
    Messages
    486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Juillet 2021
    Messages : 486
    Par défaut
    Bonjour,

    Tu ne devrais pas avoir besoin de mélanger les fichiers de différentes versions et c'est effectivement un risque d'erreur.

    Tu as bien téléchargé le fichier dompdf-3.1.4.zip sur le github dompdf ? Si oui tu ne devrais pas avoir besoin d'autres fichiers.

    Il faut ensuite inclure le fichier dompdf/autoload.inc.php dans ton script afin de pouvoir utiliser Dompdf :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // include autoloader
    require_once 'dompdf/autoload.inc.php';
    https://github.com/dompdf/dompdf?tab...ad-and-install

  3. #3
    Membre confirmé
    Homme Profil pro
    Cobol sur Mainframe et Unix AIX
    Inscrit en
    Mars 2012
    Messages
    209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Cobol sur Mainframe et Unix AIX

    Informations forums :
    Inscription : Mars 2012
    Messages : 209
    Par défaut
    merci d'avoir pris le temps de répondre.

    Oui, j'ai télécharger le .zip.

    Et justement, il n'y a pas le fichier dompdf/autoload.inc.php

  4. #4
    Invité de passage
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2013
    Messages : 49
    Par défaut
    Citation Envoyé par Eddoul Voir le message
    Et justement, il n'y a pas le fichier dompdf/autoload.inc.php
    Bonsoir, si ce fichier est bien présent :
    Nom : Capture d'écran 2026-01-06 223103.png
Affichages : 84
Taille : 26,4 Ko

    Il contient ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php require (__DIR__ . '/vendor/autoload.php');

  5. #5
    Membre confirmé
    Homme Profil pro
    Cobol sur Mainframe et Unix AIX
    Inscrit en
    Mars 2012
    Messages
    209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Cobol sur Mainframe et Unix AIX

    Informations forums :
    Inscription : Mars 2012
    Messages : 209
    Par défaut
    Bonjour,

    J'ai bien téléchargé le fichier .zip.

    J'ai toujours cette erreur :
    Fatal error: Uncaught ValueError: mb_convert_encoding(): Argument #3 ($from_encoding) contains invalid encoding "1" in /Users/eddy/Library/Mobile Documents/com~apple~CloudDocs/php_dev/SCF/core/pages/dompdf/vendor/dompdf/dompdf/src/Dompdf.php:458 Stack trace: #0 /Users/eddy/Library/Mobile Documents/com~apple~CloudDocs/php_dev/SCF/core/pages/dompdf/vendor/dompdf/dompdf/src/Dompdf.php(458): mb_convert_encoding('<!DOCTYPE html>...', 'UTF-8', '1') #1 /Users/eddy/Library/Mobile Documents/com~apple~CloudDocs/php_dev/SCF/core/pages/PDF_test.php(57): Dompdf\Dompdf->loadHtml('<!DOCTYPE html>...', true) #2 {main} thrown in /Users/eddy/Library/Mobile Documents/com~apple~CloudDocs/php_dev/SCF/core/pages/dompdf/vendor/dompdf/dompdf/src/Dompdf.php on line 458
    Voici ma page de test
    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    <?php
    /************************************************************
     * Definition des constantes / tableaux et variables
     *************************************************************/
     
    // Constantes
    define('TARGET', 'images/trombinoscope/');    // Repertoire cible
     
    echo "Page de test";
     
    $html = "<!DOCTYPE html>
    <html lang='fr'>
    <head>
    <style type='text/css'>
     .header,
     body {
     font-size: 65%;
     }
     .footer {
     width: 100%;
     text-align: center;
     position: fixed;
     }
     .header {
     top: 25px;
     }
     .footer {
     bottom: 0px;
     }
     .pagenum:before {
     content: counter(page);
     }
     </style>
    </head>
    
    <body>
    <center>
        ceci est un test
    </center>
    </body>
    </html>";
     
    require_once 'dompdf/autoload.inc.php';
    use Dompdf\Dompdf;
     
    /// Instantiate and use the dompdf class
    try {
        //$Nom_Serveur = Recup_Adresse_Serveur();
        $Nom_Fichier = TARGET . "Page_Test.pdf";
        $dompdf = new Dompdf();
     
        // Load HTML content
        $dompdf->loadHtml($html, true);
     
        // (Optional) Setup the paper size and orientation
        $dompdf->setPaper('A4');
     
        // Render the HTML as PDF
        $dompdf->render();
     
        // Output the generated PDF to Browser
        $dompdf->stream($Nom_Fichier, array("Attachment" => 0));
     
    } catch(Exception $e) {
        echo  "<br>Erreur à la ligne " . $e->getLine() . " dans le fichier " . $e->getFile() . ". <br>Une exception a été lancée : " .  $e->getMessage();
        die();
    }
    ?>
    Merci pour votre aide.

    Eddy

  6. #6
    Invité de passage
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2013
    Messages : 49
    Par défaut
    Bonjour, pour quelles raisons passer true en deuxième paramètre de la méthode loadHtml en L53?
    True est converti en son équivalent numérique 1, et est passé comme valeur ($encoding) en troisième paramètre de la fonction mb_convert_encoding() qui attend un array, ou string ou null!!!
    https://www.php.net/manual/fr/functi...t-encoding.php

    Passer un tableau, ou un string et cela devrait mieux fonctionner.
    Ne pas préciser de deuxième paramètre à la méthode loadHtml utilisera null qui est défini comme valeur par défaut. Ce que j'ai corrigé dans votre code et le PDF est généré.

    Pour plus d'info lire la méthode loadHtml en L436 de la class Dompdf (dompdf\vendor\dompdf\dompdf\src\Dompdf.php)

    Bonne continuation.

  7. #7
    Membre confirmé
    Homme Profil pro
    Cobol sur Mainframe et Unix AIX
    Inscrit en
    Mars 2012
    Messages
    209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Cobol sur Mainframe et Unix AIX

    Informations forums :
    Inscription : Mars 2012
    Messages : 209
    Par défaut
    c'est bien ça.
    ça fonctionne.
    Merci beaucoup pour ton aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [EDI] Quel est l'éditeur que vous recommandez pour PHP ?
    Par Lana.Bauer dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 400
    Dernier message: 10/04/2018, 21h08
  2. Quel est le meilleur script PHP de portail (CMS) ?
    Par Lana.Bauer dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 187
    Dernier message: 18/10/2012, 08h45
  3. L'avenir est-il au PHP ?
    Par Manolo dans le forum Langage
    Réponses: 468
    Dernier message: 11/02/2008, 19h54

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