msi79
Messages postés509Date d'inscriptionlundi 24 août 2009StatutMembreDernière intervention 2 mai 2023
-
Modifié par f0xi le 5/11/2015 à 02:29
f0xi
Messages postés4205Date d'inscriptionsamedi 16 octobre 2004StatutModérateurDernière intervention12 mars 2022
-
3 nov. 2015 à 23:26
Bonjour,
mon client veut que ses factures soient en ticket de caisse . j'ai tenté avec imprimer une zone en utilisant une div mais en vain . Alors je veux essayer la bibliothèque html2pdf en paramétrant avec un format A8. il se trouve que mon ticket déborde. Alors je voudrais de l'aide .
voici mon code :
<?php
/*
*Generer un PDF à patir d'une base de donnée
*/
//Connexion a la base de données
//Connexion a la base de données
mysql_connect('localhost','root','') or die('error');
mysql_select_db('globalaedbiac') or die('Bdd introuvable');
mysql_query('SET NAMES utf8');
ob_start();
include('functions/FACTUREDERNIER_tva.func.php');
$today = date("d/m/Y H:i:s");
if(isset($_GET['num'])) $num = urldecode($_GET['num']); //echo $num;
if(isset($_GET['clef'])) $clef = urldecode($_GET['clef']);
$query = mysql_query("SELECT *
FROM articles
WHERE clef = '".$clef."'
")
or die('error');
?>
<page backtop="20mm" backleft="10mm" backright="10mm" backbottom="30mm" >
<table width="220" border="0" style="text-align:left">
<tr>
<td colspan="3" align="center" style="font-size:24px">Ticket de Caisse</td>
</tr>
<tr>
<td colspan="3" align="center" style="font-size:14px">CEL: 58 58 81 85</td>
</tr>
<tr>
<td style="font-size:9px">#<?php echo $clef; ?> </td>
<td colspan="2" style="font-size:9px"><?php echo $today; ?></td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
</tr>
<?php
while($rows = mysql_fetch_assoc($query)) {
$j=$i%2;
?>
<tr>
<td width="63"><?php echo $rows["articleVendu"]; ?></td>
<td width="98"><?php echo $rows["articleQuant"]; ?></td>
<td width="45"><?php echo $rows["articlePU"]; ?></td>
</tr>
<?php
}
?>
<tr>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>TOTAL</td>
<td> </td>
<td><?php
$sql1 = "SELECT SUM(articleQuant*articlePU) AS depense
FROM articles
WHERE clef = '".$clef."'
";
// on envoie la requête
$req1 = mysql_query($sql1) or die('Erreur SQL !<br>'.$sql1.'<br>'.mysql_error());
$depense = mysql_fetch_assoc($req1);
echo $depense["depense"];
?></td>
</tr>
<tr>
<td>Mt Reçu</td>
<td> </td>
<td><?php
$sql11 = "SELECT *
FROM tb_somme_remise
WHERE num = '".$clef."'
";
// on envoie la requête
$req1 = mysql_query($sql11) or die('Erreur SQL !<br>'.$sql11.'<br>'.mysql_error());
$mtremi = mysql_fetch_assoc($req1);
echo $mtremi["mt"];
?></td>
</tr>
<tr>
<td>Monnai</td>
<td> </td>
<td><?php
$monnai = $mtremi["mt"] - $depense["depense"];
echo $monnai;
//AJOUT DE MONNAI
mysql_query("UPDATE tb_somme_remise SET monnai='".$monnai."'
WHERE num = '".$clef."'
")or
die(mysql_error());
?></td>
</tr>
<tr>
<td>Mt remi</td>
<td> </td>
<td><?php
$mtremis = $mtremi["monnai_remi"] ;
echo $mtremis;
?></td>
</tr>
<tr>
<td>Avoir</td>
<td> </td>
<td><?php
$avoir = $mtremi["avoir"] ;
if($avoir >0){echo $avoir;}else if($avoir <=0){echo 0;}
?></td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td colspan="3" align="center">MERCI DE VOTRE FIDELITE</td>
</tr>
<tr>
<td colspan="3" align="center">A BIENTOT</td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
</tr>
</table>
</page>
<?php
$content = ob_get_clean();
require_once("html2pdf/html2pdf.class.php");
$pdf = new HTML2PDF('P','A8','fr','true','UTF-8');
$pdf->writeHTML($content);
$pdf->pdf->IncludeJS('print(true)');
$pdf->Output('liste.pdf');
?>
f0xi
Messages postés4205Date d'inscriptionsamedi 16 octobre 2004StatutModérateurDernière intervention12 mars 202235 Modifié par f0xi le 3/11/2015 à 23:30
Déjà, tu utilise mysql au lieu de mysqli, il faut mettre à jour pour éviter les problèmes de dépréciation sur les serveur php v >= 5
Ensuite le format A8 c'est 52mm de large pour 74mm de haut.
Reste à savoir si le ticket de caisse est en portrait (52mm) ou en paysage (74mm).
Il faut ensuite tout caler et vérifier que les phrases ne dépasse pas de la taille du document.
Étrangement les tickets de caisse (rouleau) sont sur des imprimantes spécifiques (thermique) qui possède leur propre langage d'impression (EPL, ZPL etc) c'est l'idéal pour faire de beaux tickets tout propres.
Si il utilise des imprimantes normales ... je vois pas trop l'intérêt d'imprimer en A8 ... mais bon ... pourquoi pas.
Utilise plutôt la lib FPDF qui permet beaucoup plus de choses, directement en PHP (lib utilisée par de nombreux sites), facile à comprendre et à mettre en oeuvre.