Générer un document pdf à partir d'une page html
J'ai besoin de transformer une page qui rassemble les réponses à un questionnaire en ligne et qui puisse être téléchargée et/ou imprimée de préférence en format .pdf
C'est le visiteur qui est l'utilisateur aussi je ne peux pas lui imposer une application autre que le site qu'il visite pour générer de tels documents
Il faut donc me semble-t-il que ce soit un script intégré dans le mien
Quelle sont les solutions? :roll:
Qui peut me mettre sur la piste?
CaptainChristian ;)
Générer doc pdf à partir d'une page html
Merci des pistes.
Tout ce que je peux lire me laisse penser qu'au vu de mon pb, html2pdf répondrait bien à mon besoin car mon document peut facilement se formuler en une série de tables
J'ai chargé comme requis composer mais je ne parviens cependant pas à installer html2pdf car je ne comprends rien à leurs explications...
Pourrais-tu m'indiquer ta préférence: html2pdf ou FPDF?
Je pourrai peut-être ainsi me concentrer sur ce qui a des chances d'aboutir...
;)
HTML2PDF: TCPDF ERROR: Could not include font definition file: helvetica
J'ai opté pour HTML2PDF et les premiers pas ont été très encourageants
Mes scripts fonctionnent correctement en localhost
Cependant après transfert sur le serveur, certains ne fonctionnent plus et je récolte un message d'erreur du type:
Citation:
TCPDF ERROR: Could not include font definition file: helvetica
Je ne parviens pas à trouver la solution
Ci-après un des scripts html2pdf qui recueille le message:
Code:
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 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168
| <?php
session_start();
// Connexion à la base de données
try
{
$bdd = new PDO('mysql:host=db739065681.db.1and1.com;dbname=db739065681;charset=utf8', 'dbo739065681', 'secret', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
// Récupération des données contenues dans 'pe_easa_historique'
$req = $bdd->prepare('SELECT * FROM pe_easa_historique WHERE RefGesnavAeronef=:RefGesnavAeronef ORDER BY NumeroRevisionPe DESC');
$req->execute(array(
'RefGesnavAeronef'=>$_SESSION['RefGesnavAeronef']
));
$donnees = $req->fetch();
//Dénomination du fichier pdf à créer:
$RefGesnavAeronef=$_SESSION['RefGesnavAeronef'];
$NumeroRevisionPe=$donnees['NumeroRevisionPe'];
$nompdf='AnnexeA-'.$RefGesnavAeronef.'-'.$NumeroRevisionPe.'.pdf';
ob_start();
?>
<style type="text/css">
.footer
{
text-align:center;
}
.footer p
{
text-align:left;
}
div
{
position:center;
}
table td
{
border-collapse: collapse;
text-align:center;
border: 1px solid black;
}
table th
{
border-collapse: collapse;
text-align:center;
border: 1px solid black;
}
table
{
border-collapse: collapse;
border: 1px solid black;
margin:auto;
position:left;
}
span
{
color:#1171ba;
font-weight:bold;
}
h1
{
text-align:center;
color:black;
font-weight:bold;
}
h2
{
text-align:center;
color:grey;
font-weight:bold;
}
h3
{
text-align:left;
color:grey;
font-weight:bold;
}
</style>
<page backtop="130px" backbottom="30px">
<page_header>
<div>
<?php
if($donnees['typePe']=='approuver')
{
echo'<h2>
ANNEXE A au PROGRAMME d\'ENTRETIEN <span>APPROUVE</span> Révision <span> n° '.$donnees['NumeroRevisionPe'].' </span> Date: <span>'.$donnees['dateFinalPeEasa'].'</span></h2>';
}
elseif($donnees['typePe']=='declaratif')
{
echo'<h2>
ANNEXE A au PROGRAMME d\'ENTRETIEN <span>DECLARATIF</span> Révision <span>n° '.$donnees['NumeroRevisionPe'].' </span> Date: <span>'.$donnees['dateFinalPeEasa'].'</span></h2>';
}
?>
<table>
<tr>
<th>IMMATRICULATION</th>
<th>TYPE/MODELE</th>
<th>NUMERO de SERIE</th></tr>
<?php
// Affichage de l'identification de l'aéronef:
echo'<tr><td><span>'.$_SESSION['immatAeronef'].'</span></td>';
echo'<td><span>'.$_SESSION['modeleAeronef'].'</span></td>';
echo'<td><span>'.$_SESSION['numeroSerieAeronef'].'</span></td></tr>'
?>
</table>
</div>
</page_header>
<page_footer>
<div class="footer">
<hr/>
<p>Nom du fichier:<?php echo $nompdf ?></p>
page [[page_cu]]/[[page_nb]]
</div>
</page_footer>
<div>
<h3>PROGRAMME d'INSPECTION MINIMUM (PIM)</h3>
<h4>Tâches qui dérogent au <a href="../uploads/MIP Planeurs et Motoplaneurs.pdf">PIM standard</a></h4>
<table>
<tr><th>LISTE DES TACHES</th></tr>
<?php
echo'<tr><td><span>'.$_SESSION['deviationsPim']['listeDeviationsPim'].'</span></td></tr>';
?>
</table>
</div>
</page>
<?php
// Enregistrement du nom du fichier dans 'pe_easa_historique'
$req = $bdd->prepare('UPDATE pe_easa_historique SET nomPdfAnnexeA=:nomPdfAnnexeA WHERE RefGesnavAeronef=:RefGesnavAeronef AND NumeroRevisionPe=:NumeroRevisionPe');
$req->execute(array(
'RefGesnavAeronef'=>$_SESSION['RefGesnavAeronef'],
'NumeroRevisionPe'=>$NumeroRevisionPe,
'nomPdfAnnexeA'=>$nompdf
));
$content= ob_get_clean();
require_once(dirname(__FILE__).'/html2pdf/html2pdf.class.php');
try
{
$pdf = new HTML2PDF('P','A4','fr');
$pdf->pdf->SetDisplayMode('fullpage');
$pdf->pdf->SetProtection(array('print'));
$pdf->writeHTML($content);
$pdf->Output('../uploads/'.$nompdf,'F');
// $pdf->Output($nompdf);
}
catch(HTML2PDF_exception $e)
{
echo $e->getMessage();
exit;
}
header('Location:introductionPeEasa.php'); |
8O8O