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

Symfony PHP Discussion :

Bundle KnpSnappy : Créer un fichier pdf avec deux fichiers twig.


Sujet :

Symfony PHP

  1. #1
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut Bundle KnpSnappy : Créer un fichier pdf avec deux fichiers twig.
    Bonjour à tous,

    J'ai effectué une application web sous Symfony 3.4.18 qui utilise le bundle KnpSnappy pour générer un fichier PDF via un fichier twig. Cela fonctionne parfaitement.
    Mon souci, c'est que j'aimerais ajouter à ce fichier pdf, un autre fichier twig en plus de l'actuel.
    Exemple : J'ai "twig1.html.twig" (1 page) et "twig2.html.twig" (1 page). Je souhaiterais créer un seul fichier avec ces deux fichiers twig. Ce fichier pdf serait nommé par exemple "pdf.pdf" (2 pages).

    Après plusieurs recherches sur internet, je ne trouve pas comment faire !
    D'après vous, cela est-il possible ?
    Si oui, quelle est la méthode à mettre en place ?

    Merci par avance.
    Bien cordialement,
    Loïc.

  2. #2
    Expert éminent sénior

    Avatar de -Nikopol-
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2013
    Messages
    2 174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2013
    Messages : 2 174
    Points : 11 289
    Points
    11 289
    Billets dans le blog
    5
    Par défaut
    peut etre peux tu essayer ceci :
    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
    use Knp\Bundle\SnappyBundle\Snappy\Response\PdfResponse;
    use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
     
    class SomeController extends AbstractController
    {
        public function pdfAction(Knp\Snappy\Pdf $knpSnappyPdf)
        {
            $html = $this->renderView('MyBundle:Foo:bar.html.twig', array(
                'some'  => $vars
            ));
            $html .= $this->renderView('MyBundle:Foo:bar.html2.twig', array(
                'some2'  => $vars2
            ));
            return new PdfResponse(
                $knpSnappyPdf->getOutputFromHtml($html),
                'file.pdf'
            );
        }
    }
    issu de la doc auquel j'ajoute le 2eme twig l'ajout du 2eme twig. Je n'ai pas testé

  3. #3
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut
    Merci pour votre réponse -Nikopol-.

    Malheureusement, lorsque je fais cela, ça me met le texte du deuxième twig sur la même page que le premier twig comme le montre l'image ci-dessous, alors que je souhaiterais que le deuxième twig soit forcément une nouvelle page du document.
    Nom : 2022_01_26_18_30_47_Window.png
Affichages : 906
Taille : 19,3 Ko

    Ci-dessous, voici le code source pour la génération du document pdf
    :
    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
     
            $html = $this->generate_html();
            $header = $this->generate_header();
            $footer = $this->generate_footer( );
     
            return new PdfResponse($this->get('knp_snappy.pdf')->getOutputFromHtml($html, array(
                    'images' => true,  
                    'enable-javascript' => true,  
                    'page-size' => 'A4',
                    'viewport-size' => '1280x1024',
                    'header-html' => $header,
                    'footer-html' => $footer,
                    'margin-left' => '10mm',  
                    'margin-right' => '10mm',  
                    'margin-top' => '30mm',  
                    'margin-bottom' => '15mm',
                )),
                'file.pdf'
            );
     
    public function generate_html(){
            // Appel des services.
            $common = new CommonServices();
     
     
            $html = $this->renderView('FactureBundle:Facture:PDF1.html.twig', array());
            $html .= $this->renderView('FactureBundle:Facture:PDF2.html.twig', array());
     
            return $html;
        }
    Merci par avance pour votre aide,
    Bien cordialement,
    Loïc.

  4. #4
    Expert éminent sénior

    Avatar de -Nikopol-
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2013
    Messages
    2 174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2013
    Messages : 2 174
    Points : 11 289
    Points
    11 289
    Billets dans le blog
    5
    Par défaut
    regarde du coté du css, ca doit fonctionner :
    Code CSS : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    @media print {
      .my-class {break-after: always;}
    }

  5. #5
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut
    Bonjour,

    Merci pour votre retour.
    J'ai essayé, mais ça ne fonctionne pas

    Bien cordialement,
    Loïc.

Discussions similaires

  1. [fpdf] créer une galerie photos en pdf avec une liste fichiers
    Par bigbib dans le forum Bibliothèques tierces
    Réponses: 5
    Dernier message: 28/08/2017, 07h52
  2. Créer une clé secondaire avec deux colonnes en même temps
    Par wallace27 dans le forum PostgreSQL
    Réponses: 7
    Dernier message: 21/01/2016, 19h30
  3. Concaténer deux fichiers PDF avec pdftk
    Par serana71 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 23/04/2010, 11h08
  4. [FPDF] Créer un fichier pdf avec PHP
    Par picoloto dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 24/09/2008, 22h05
  5. Réponses: 1
    Dernier message: 21/05/2007, 10h33

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