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

Bibliothèques et frameworks PHP Discussion :

[TCPDF] changement d'orientation portrait/paysage


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 26
    Points : 12
    Points
    12
    Par défaut [TCPDF] en-tête identique en mode portrait et paysage
    Bonjour,
    A l'aide de TCPDFje génère une première page en mode portrait, munie d'une entête de 210 mm de long, à la suite de celle-ci je génère une seconde page mais en mode paysage munie de la même en-tête, or je ne parviens pas à centrer l'entête puisque les coordonnées utilisées sont celles de la première page.

    J'ai essayé de redefinir les marges avant d'appeler
    $pdf->AddPage("L");
    mais ça ne fonctionne pas.

    j'ai aussi essayé de supprimer le header et le footer pour remettre l'image après mais là aussi, ça ne fonctionne pas: ma page est bien générée en paysage mais le header est aligné en haut à gauche...


    le code pour les amateurs:

    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
    require_once('../classes/tcpdf/config/lang/eng.php');	
    require_once('../classes/tcpdf/tcpdf.php');
     
    class PDF extends TCPDF
    {
    //En-tête
    function Header()
    {
    //Logo
    $this->Image('../images/en_tete_aspe33.png',0,0,209.97);
    }
     
    //Pied de page
    function Footer()
    {
    //Positionnement à 1,5 cm du bas
    $this->Image('../images/pied_page_aspe33.png',0,277.02,209.97);
    }
    }
     
    //création d'un nouveau document pdf: unité par défaut, mm
    $pdf = new PDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true); 
     
    $pdf->SetCreator(PDF_CREATOR);
    $pdf->SetAuthor(PDF_AUTHOR);
    $pdf->SetTitle($doc_title);
    $pdf->SetSubject($doc_subject);
     
    $pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
     
     
    $pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
    $pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
    $pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
    $pdf->setImageScale(PDF_IMAGE_SCALE_RATIO); //facteur de zoom d'image
     
    $pdf->setLanguageArray($l); 
    $pdf->SetLeftMargin(10);
    $pdf->SetRightMargin(10);
     
    //première page
    $pdf->AddPage();
     
    //seconde page
    $pdf->setPrintFooter(false);
    $pdf->SetMargins(43.5, PDF_MARGIN_TOP, 43.5);
    $pdf->AddPage("L");
    $pdf->Output("demande.pdf", 'F');

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 26
    Points : 12
    Points
    12
    Par défaut
    j'ai un élément à apporter: en fait quand on étend la classe principale (c'est ce que je fais pour ajouter mon header et mon footer sinon j'ai un trait continu sous mon header et pas de footer), setPrintFooter(false) et setPrintHeader(false) ne fonctionnent plus...

  3. #3
    Membre éclairé
    Avatar de jc_cornic
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    623
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 623
    Points : 823
    Points
    823
    Par défaut
    Salut, que contient exactement ton header ??? juste une image ??? Si c'est le cas, c normal qu'elle soit à gauche, il faut lui préciser son emplacement...

    Tu peux envoyer ton pdf généré ainsi que celui que tu voudrais générer ???

    ++
    Jc
    VELOMASTER, idée cadeau ? un jeu de plateau

    Hummmmm, des donuts !!!!

    Merci de penser à , et et aussi

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 26
    Points : 12
    Points
    12
    Par défaut
    Oui mon header n'est constitué que d'une image.
    c'est effectivement normale quelle soit à gauche puisque qu'elle mesure 210 mm de longueur, donc ça va bien quand je suis en mode portrait.
    Comme j'ai étendu TCPDF en PDF pour intégrer cette image en en-tête, AddPage() conserve toujours les paramètres de positionnement et je ne parviens pas à les modifier...
    Quelqu'un sur le forum de FPDF propose de mettre une condition dans la fonction Header():
    si tu es en mode portrait alors
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $this->Image('../images/en_tete_aspe33.png',0,0,209.97);
    si tu es en mode paysage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $this->Image('../images/en_tete_aspe33.png',43.5,0,209.97);
    j'ai essayé ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function Header()
    {
    if ($pdf->AddPage())
    {
    $this->Image('../images/en_tete_aspe33.png',0,0,209.97);
    }
    elseif ($pdf->AddPage("L"))
    {
    $this->Image('../images/en_tete_aspe33.png',43.5,0,209.97);
    }
    }
    mais ça me renvoie une erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Fatal error: Call to a member function AddPage() on a non-object
    (je suis encore débutant en php et je manie mal les fonctions)

    en pièce jointe les 2 exemples. il faut noter la disparition du footer sur le modèle paysage: je n'en n'ai pas besoin.

    merci beaucoup.
    Fichiers attachés Fichiers attachés

  5. #5
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Concernant l'orientation de la page, le classe fpdf définit dans son constructeur un paramètre, le premier en l'occurrence 'P' pour portrait et 'L' pour paysage.

    Dans votre classe vous définissez des constantes et notamment celle-ci PDF_PAGE_ORIENTATION , il faut donc assigné 'L' à cette constante ou alors mettre l'orientation dans le constructeur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $pdf = new PDF('L', PDF_UNIT, PDF_PAGE_FORMAT, true);

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 26
    Points : 12
    Points
    12
    Par défaut
    Je ne comprends pas trop ce que vous voulez me dire.

    j'utilise la classe TCPDF, le paramètre PDF_PAGE_ORIENTATION est défini dans le fichier tcpdf_config.php.
    Normalement, quand on appelle AddPage(), on peut lui passer un paramètre: soit AddPage("L") soit AddPage("P") si on le laisse vide comme ceci: AddPage(), l'orientation est celle définie par la constante PDF_PAGE_ORIENTATION située dans tcpdf_config.php.

    Mon problème n'est pas l'orientation de la page qui se fait très bien mais la position de mon en-tête: dans la mesure ou j'étends la classe principale, tous les paramètres (l'en-tête qui est une image, position de cette image) donnés lors de l'extension sont conservés et je ne parviens pas à les changer.

  7. #7
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Citation Envoyé par Pixys Voir le message

    Mon problème n'est pas l'orientation de la page qui se fait très bien
    Désolé j'ai du mal interprété votre Titre "[TCPDF] changement d'orientation portrait/paysage"

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 26
    Points : 12
    Points
    12
    Par défaut
    pas de soucis, c'est de ma faute si le titre n'est pas très explicite, désolé.

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 26
    Points : 12
    Points
    12
    Par défaut
    Le seul moyen que j'ai trouvé, c'est de ne pas étendre la classe de base et de mettre mes en-tête et pied de page comme si c'était "des images normales"; je dois juste les insérer à chaque nouvelle page, (c'est gérable parce que mon document ne fait que 2 pages, ça serait pénible si il y avait de nombreuses pages) mais ça me permet de les positionner quel que soit l'orientation de la page...
    Il serait tout de même intéressant de savoir si il est possible de procéder avec les fonctions header() et footer().

    merci, bonne soirée et joyeuses fêtes de fin d'année à tous.

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

Discussions similaires

  1. [WM18] Changement de portrait à paysage
    Par Trexxy dans le forum Windev Mobile
    Réponses: 3
    Dernier message: 04/06/2014, 18h31
  2. Orientation portrait / paysage
    Par javaPanique dans le forum Android
    Réponses: 4
    Dernier message: 25/12/2012, 20h52
  3. [OpenOffice][Texte] Comment écrire un dossier dont l'orientation est paysage et non portrait sur open office ?
    Par Smeralda dans le forum OpenOffice & LibreOffice
    Réponses: 1
    Dernier message: 24/06/2012, 21h15
  4. [AC-2003] [Etat]Impression d'état - portrait/paysage
    Par Alain6121967 dans le forum IHM
    Réponses: 7
    Dernier message: 24/04/2009, 15h06
  5. Réponses: 10
    Dernier message: 08/09/2006, 08h41

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