-
-
Save micker/502f1170b985694063a40a3050d8c0d8 to your computer and use it in GitHub Desktop.
PDF generator
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
// Include the main TCPDF library (search for installation path). | |
require_once JPATH_LIBRARIES . '/tcpdf/tcpdf.php'; | |
// create new PDF document | |
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); | |
// remove default header | |
$pdf->setPrintHeader(false); | |
// set footer fonts | |
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA)); | |
// set default monospaced font | |
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED); | |
// set margins | |
$pdf->SetMargins(PDF_MARGIN_LEFT, 10, PDF_MARGIN_RIGHT); | |
$pdf->SetFooterMargin(PDF_MARGIN_FOOTER); | |
// set auto page breaks | |
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM); | |
// set image scale factor | |
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO); | |
// set font | |
$pdf->SetFont('dejavusans', '', 8); | |
// ici je recupere toutes les valeurs contenus | |
$_position_name_spec = "spec"; | |
if (isset($item->positions[$spec])) { | |
foreach ($item->positions[$_position_name] as $field){ | |
$specs = '<tr><td>'. $field->label .'</td><td>'. $field->display .'</td></tr>'; | |
} | |
} | |
// add a page | |
$pdf->AddPage(); | |
// début de mon contenu dans le pdf | |
$html = ' | |
<table border="0" cellspacing="0" cellpadding="0" width="100%"> | |
<tr> | |
<td width="50%"><img class="img-responsive" src="https://eurogrip.com/images/logo.png" alt="" width="150px"></td> | |
<td width="50%"><div style="margin-top:0px;"><h1 style="border-left:2px solid #055DA8;border-bottom:1px solid #055DA8;padding-left:10px;height:20px;">'.$item->title.'</h1></div></td> | |
</tr> | |
</table> | |
<table border="0" cellspacing="0" cellpadding="0" width="100%"> | |
<tr> | |
<br/> | |
<br/> | |
<td width="100%"> | |
<img src="https://eurogrip.com'. $item->fields['gallerie']->thumbs_src['large'][0] . '" /> | |
</td> | |
</tr> | |
</table> | |
<br/> | |
<br/> | |
<table border="0" cellspacing="0" cellpadding="0" width="100%"> | |
<tr> | |
<td width="45%"><div class="description">'. $item->text .'</div></td> | |
<td width="10%"></td> | |
<td width="45%"> | |
<br/> | |
<h2 style="border-left:2px solid #055DA8;border-bottom:1px solid #055DA8;padding-left:10px;height:20px;">SPECS</h2> | |
' .$specs.' // je veus charger le resultat de ma boucle | |
</td> | |
</tr> | |
</table>'; | |
// output the HTML content | |
$pdf->writeHTML($html, true, false, true, false, ''); | |
// reset pointer to the last page | |
$pdf->lastPage(); | |
//Close and output PDF document, save pdf in /images/ | |
$pdf->Output($_SERVER['DOCUMENT_ROOT'] . 'images/pdf-product/' . $this->item->alias . '.pdf', 'F'); | |
//becaurefull adapt the good folder to your config 'SOUS_REPERTOIRE/images/' | |
//ex 'SOUS_REPERTOIRE/images/' | |
//complet url /var/www/default/SOUS_REPERTOIRE/images | |
// Now we will add a link to the pdf | |
echo '<a target="_BLANK" href="/images/pdf-product/' . $this->item->alias . '.pdf" class="btn btn-success"><strong>PDF product</strong></a>'; | |
?> | |
<!-- End PDF --> |
je vais checker je t'ai ouvert les droits je pense
merci
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Bon, si je comprends bien, tu y es en fait.
Je ne fais que lire le code, sans l'exécuter mais je te propose juste de déclarer ta variable
$specs
que tu utilises.Donc: insère une toute nouvelle ligne à la place de la ligne
33
qui deviendra la ligne34
https://gist.github.com/micker/502f1170b985694063a40a3050d8c0d8#file-php-L33Cette ligne sera, juste,
$specs = ''
;Ensuite, change ta ligne
36
(anciennement35
) pour faire.=
et non pas=
Donc:
$specs .= '<tr><td>'. $field->label .'</td><td>'. $field->display.'</td></tr>';
Il est très important de faire .= ici
Plus loin, ta ligne
68
(anciennement67
) est correcte mais supprime le commentaire. Il ne peut pas rester sinon tu as un souci.Maintenant, si je regarde ton code pour
$specs
et donc$specs .= '<tr><td>'. $field->label .'</td><td>'. $field->display .'</td></tr>';
Je comprends que tu construits une ligne avec deux colonnes (deux
td
); lelabel
et ledisplay
. Une ligne, deux colonnes donc.Dans ton HTML, tu veux mettre
$spec
à la suite du H2. Tu es donc dans la troisième colonne de ce tableau-là et tu veux insérer untr
avec deuxtd
. La construction de ton tableau me paraît, ici, assez bizarre.Ce n'est pas un problème PHP mais un problème HTML. Tu as un tableau avec une ligne et trois colonnes; dans la troisième tu auras un
H2
et là, ton$spec
(donc untr
et deux colonnes).Ce tableau-là (le troisième de
$html
) me paraît étrangement construits.Ton problème PHP est donc vraiment très simple 😉 Juste le
.=
et je pense que cela doit être OK(une fois encore, je ne fais que lire, je ne peux pas exécuter le code pour voir s'il est OK)
A++