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

Mise en page CSS Discussion :

balises html et css compatibles avec le format pdf


Sujet :

CSS

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2019
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2019
    Messages : 1
    Par défaut balises html et css compatibles avec le format pdf
    Bonjour,

    Je travaille dans une société et on me demande d'éditer des formats de factures et devis pour des clients,

    Je dois les éditer en HTML/CSS puis les convertir en PDF, mais le seul problème c'est que il y a des balises < > incompatibles avec PDF, lorsque l'on convertir en PDF soit le fichier est illisible soit il y a des choses qui ne s'affichent pas comme on veux et cela ne plait pas à mon patron svp aidez moi,

    J'aimerais savoir quels sont les balises HTML (et CSS aussi!!!) compatibles avec le format PDF svp ? De façon a ce que quand je convertit avec le logiciel html2pdf il n'ya aucun probleme d affichage.

    La conversion html to pdf ne suffit pas pour editer les formats...

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    1- MERCI de NE PAS ouvrir plusieurs discussions sur le même sujet !


    2-
    Citation Envoyé par raphaeltaieb26 Voir le message
    ...compatibles avec le format PDF...
    Non.

    Le problème vient du logiciel de conversion que tu utilises : html2pdf ?
    Et en effet, certaines balises ne sont pas prises en compte.

    Une solution est de créer 2 fichiers/scripts :
    • 1 pour l'affichage HTML
    • 1 pour la création du PDF (sans balises incompatibles *)

    * A toi de trouver lesquelles, par des tests.

  3. #3
    Membre extrêmement actif Avatar de psychadelic
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 2 532
    Par défaut
    J'ai utilisé HTML2PDF...
    on va dire que ça rends quand même bien service.
    et puis paradoxalement, le projet continue d'évoluer !
    La doc est relativement suffisante pour s'en sortir, mais comme l'écrit presque jreaux62, faut tout tester 3 fois.
    Partir du principe que le HTML autorisé correspond à du HTML 1.

    (pour moi qui ai fait du SGML, c'est du gâteau )

    sinon, peut être en installant une ancienne version de navigateur Internet, ça peut aider ?
    je me demande si cela reste possible ? genre installer un IE4 sur une vm ??

  4. #4
    Membre éclairé Avatar de Tillo
    Homme Profil pro
    Webmaster
    Inscrit en
    Octobre 2007
    Messages
    494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 494
    Par défaut
    Bonjour,

    Je sais que ça ne répond pas vraiment à la question initiale, mais pour un de mes projets persos, j'ai utilisé la librairie mpdf (dispo sur Github).
    J'ai des petits soucis de mise en page, mais globalement elle fait son boulot plutôt pas trop mal.

    Bon courage
    Tillo.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    1- voilà globalement comment je m'y prends pour générer un PDF avec PHP2PDF :

    order_pdf_generate.php (Commande) :
    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
    <?php	// -------------------------
    	/**
    	 * HTML2PDF Library
    	 *
    	 * HTML => PDF convertor
    	 * distributed under the LGPL License
    	 *
    	 * @package   Html2pdf
    	 * @author    Laurent MINGUET <webmaster@html2pdf.fr>
    	 * @copyright 2016 Laurent MINGUET
    	 *
    	 * isset($_GET['vuehtml']) is not mandatory : it allow to display the result in the HTML format
    	 */
    	// -------------------------
        // get the HTML
        ob_start();
    	// -------------------------
    	// CONTENU du PDF
    ?>
    <page backcolor="#fff" footer="page" style="font-size:9pt;">
        <bookmark title="Lettre" level="0" ></bookmark>
        <page_header>
    <?php	// entête
    		require(__DIR__.'/order-pdf-BoxHeader.php'); 
    ?>
        </page_header>
        <page_footer>
    <?php	// pied de page
    		require(__DIR__.'/order-pdf-BoxFooter.php'); 
    ?>
        </page_footer>
    <?php	// contenu
    		require(__DIR__.'/order-pdf-BoxVendeurAcheteur.php');
    		require(__DIR__.'/order-pdf-BoxTarifs.php');
     
    		require(__DIR__.'/order-pdf-BoxBanque.php'); 
    ?>
    </page>
    <?php
        $content = ob_get_clean();
     
    //	print_r($content); // pour TEST !
    //	exit;
    	// -------------------------
        // inclusion de la librairie html2pdf
        require_once(dirname(dirname(dirname(__DIR__))).'/utilitaires/html2pdf/vendor/autoload.php'); // A ADAPTER !!
        // convert to PDF
        try
        {
            $html2pdf = new HTML2PDF('P', 'A4', 'fr');
            $html2pdf->pdf->SetDisplayMode('fullpage');
    		$html2pdf->setDefaultFont('Arial');
    //      $html2pdf->pdf->SetProtection(array('print'), 'spipu');
            $html2pdf->writeHTML($content, isset($_GET['vuehtml']));
    //        $html2pdf->Output($CommandePDFPathFull);	// affichage à l'écran
    		$html2pdf->pdf->Output($CommandePDFPathFull,'F'); // enregistrement dans un fichier
        }
        catch(HTML2PDF_exception $e) {
            echo $e;
            exit;
        }
    	// -------------------------
    order-pdf-BoxHeader.php (exemple, pour montrer qu'il faut utiliser des <table> et mettre le CSS "en ligne de code") :
    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
    	<table id="docA4-BoxHeader" cellspacing="0" border="0" style="width:190mm; border-collapse:collapse; text-align:left; margin:0; padding:0; border:0;">
    		<tr>
    			<td class="header_img" style="width:45%;width:90mm;"><?php if( !empty($fcptPhoto) ){ ?><img style="max-width:90mm;max-height:35mm;" src="<?php echo $fcptRep['desktop'].$fcptPhoto; ?>" alt="" /><?php } ?></td>
    			<td class="header_txt" style="width:55%;width:110mm;">
    				<h1 style="margin:3pt 0; padding:0; font-size:16pt; color:#cc3333; text-align:center;"><?php echo mb_convert_case (dico('Bon_Commande'), MB_CASE_UPPER ,'UTF-8'); ?></h1>
    				<table cellspacing="0" border="0" style="width:100%; text-align:left; vertical-align:middle; margin:0; padding:0; border:0;">
    					<tr>
    						<td style="width:35%; font-size:8pt; color:#666; font-style:italic; text-align:left !important; padding-left:10pt; font-weight:normal;"><?php echo dico('Reference'); ?> :</td>
    						<td style="width:65%; font-size:11pt; color:#cc3333;"><b><?php echo $ocomCommandeRef; ?></b></td>
    					</tr>
    					<tr>
    						<td style="width:35%; font-size:8pt; color:#666; font-style:italic; text-align:left !important; padding-left:10pt; font-weight:normal;"><?php echo dico('Date_Commande'); ?> :</td>
    						<td style="width:65%; font-size:8pt; color:#cc3333;"><?php echo date('d/m/Y', strtotime($ocomCommandeDate)); ?></td>
    					</tr>
    				</table>
    			</td>
    		</tr>
    	</table>


    2- Pour comparaison, voici l'affichage sur le site (HTML) :

    fichier order_html_affiche.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <div class="docA4-HTML">
    <?php
    		require(__DIR__.'/order-html-BoxHeader.php');
     
    		require(__DIR__.'/order-html-BoxVendeurAcheteur.php');
    		require(__DIR__.'/order-html-BoxTarifs.php');
     
    		require(__DIR__.'/order-html-BoxBanque.php'); 
    		require(__DIR__.'/order-html-BoxFooter.php'); 
    ?>
    </div>
    fichier order-html-BoxHeader.php, pour affichage sur le site (avec <div>, et classes CSS,...) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <div id="docA4-BoxHeader">
    	<table>
    		<tr>
    			<td class="header_img"><?php if( !empty($fcptPhoto) ){ ?><img style="max-width:90mm;max-height:35mm;" src="<?php echo $fcptRep['desktop'].$fcptPhoto; ?>" alt="" /><?php } ?></td>
    			<td class="header_txt">
    				<h1><?php echo mb_convert_case( dico('Bon_Commande'), MB_CASE_UPPER ,'UTF-8' ); ?></h1>
    				<p><span class="label"><?php echo dico('Reference'); ?> :</span> <b><?php echo $ocomCommandeRef; ?></b></p>
    				<p><span class="label"><?php echo dico('Date_Commande'); ?> :</span> <?php echo date('d/m/Y', strtotime($ocomCommandeDate)); ?></p>
    			</td>
    		</tr>
    	</table>
    </div>

  6. #6
    Membre extrêmement actif Avatar de psychadelic
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 2 532
    Par défaut
    A tout hasard et pour information, je viens de découvrir une librairie JS permettant de produire un PDF => https://cdnjs.com/libraries/jspdf je sais pas trop ce qu'elle vaut, je pense faire des tests basiques pour voir....

    un article => https://codeburst.io/generate-pdf-in...t-c8dbbfb56361

Discussions similaires

  1. Fiches de synthèse des balises html et css
    Par Monky dans le forum Général Conception Web
    Réponses: 1
    Dernier message: 16/10/2014, 09h21
  2. Capturer des balises HTML dans un JEditorPane avec un CaretEvent
    Par TerrorOnCity dans le forum Agents de placement/Fenêtres
    Réponses: 0
    Dernier message: 03/06/2013, 17h13
  3. J2EE compatible avec ma formation ?
    Par helpy2 dans le forum Etudes
    Réponses: 4
    Dernier message: 23/09/2010, 09h54
  4. Google Docs compatible avec les formats de Word 2007 et Excel 2007
    Par Emmanuel Chambon dans le forum Actualités
    Réponses: 2
    Dernier message: 04/06/2009, 20h03
  5. Fin de ligne compatible avec le format UNIX
    Par zuzuu dans le forum Visual C++
    Réponses: 1
    Dernier message: 28/10/2007, 09h22

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