QR Code dans un PDF

Fermé
Red6Pc Messages postés 23 Date d'inscription mardi 16 juin 2020 Statut Membre Dernière intervention 27 avril 2022 - 16 juin 2020 à 16:46
Red6Pc Messages postés 23 Date d'inscription mardi 16 juin 2020 Statut Membre Dernière intervention 27 avril 2022 - 19 juin 2020 à 18:59
Bonjour à tous,
Je travaille actuellement sur un Projet informatique de Conception d'une application Web de PLANNING DE FORMATION, laquelle exige qu'à l'issue d'une formation l'apprenant se voit délivrer une Attestation de Fin de Formation. Bien qu'ayant déjà travaillé sur des Projets Web où la finalité était également de générer un PDF d'un Membre inscrit à un évènement, par exemple, en utilisant la classe TCPDF ou FPDF, j'avoue que je n'avais encore jamais travaillé sur la Génération d'un PDF avec QR Code incorporé.
J'ai besoin d'un peu plus de lumière là-dessus.
Merci.

4 réponses

jordane45 Messages postés 36376 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 5 octobre 2022 4 366
16 juin 2020 à 16:56
Bonjour,

Tu peux générer ton qrCode en image et l'inclure dans ton PDF ( via TCPDF ou autre...)
Tu peux aussi utiliser une class comme Html2Pdf pour transformer du code html (dans lequel tu aurais mis ton qrCode ) en PDF.


0
Red6Pc Messages postés 23 Date d'inscription mardi 16 juin 2020 Statut Membre Dernière intervention 27 avril 2022
16 juin 2020 à 19:28
Mais comment ? En fait, mon souci c'est que d'abord la librairie pour générer un PDF, C'est un Code à part, ... Celle pour générer également un QR Code, c'est un Code à part ... Le problème C'est Réussir à fusionner ces 2 Codes différents en un seul fichier.
0
jordane45 Messages postés 36376 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 5 octobre 2022 4 366 > Red6Pc Messages postés 23 Date d'inscription mardi 16 juin 2020 Statut Membre Dernière intervention 27 avril 2022
16 juin 2020 à 19:42
Comme je te l'ai dit ....
Tu génères en premier le qrcode en tant qu'image
Ensuite, tu insères cette image (comme tu pourrais le faire pour n'importe quelle autre image....) dans ton pdf...
Qu'est-ce que tu ne comprends pas ??
0
Red6Pc Messages postés 23 Date d'inscription mardi 16 juin 2020 Statut Membre Dernière intervention 27 avril 2022
18 juin 2020 à 19:27
Bonjour, j'ai un autre souci... C'est d'ailleurs le tout premier même, je m'en suis aperçu que maintenant. En effet, quand je lance l'impression d'un PDF avec la librairie "html2pdf_v4.03", l'impression ne se lance pas et j'ai un message d'erreur de ce genre (dernière image) ...
Warning: count(): Parameter must be an array or an object that implements Countable in C:\xampp\htdocs\1hotelradison-cg.com_old\app\super_admin\html2pdf_v4.03\_class\locale.class.php on line 68

Warning: count(): Parameter must be an array or an object that implements Countable in C:\xampp\htdocs\1hotelradison-cg.com_old\app\super_admin\html2pdf_v4.03\_class\locale.class.php on line 68
TCPDF ERROR: Some data has already been output, can't send PDF file

Et cela quand je me rends à ligne 68 du fichier "load.class.php" indiqué, je vois ceci :

0
jordane45 Messages postés 36376 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 5 octobre 2022 4 366
18 juin 2020 à 20:31
Commence par poster ton code correctement sur le forum en utilisant les BALISES DE CODE
Explications disponibles ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

Sachant que le message d'erreur est lié à la version de php que tu utilises ( qui est plus tatillone sur certaines fonctions...)
Il faudrait modifier le code comme ceci
$line = fgetcsv($handle); 
if (!empty( $line) &&  $line !=null  && count($line)!=2) { 
  continue;
 }
0
Red6Pc Messages postés 23 Date d'inscription mardi 16 juin 2020 Statut Membre Dernière intervention 27 avril 2022
19 juin 2020 à 15:24
Re-Bonjour, maintenant il me reste à réussir l'insertion du QR Code ...
Voici le code de mon fichier reservation_web.php qui affiche un tableau de données de la table RESERVATION de ma Base De Données ...
<div class="panel3-reservation-web">
<table style="font-family:Verdana, Arial, Helvetica, sans-serif; font-size:11px; font-weight:bold;">
<tr style="background-color: orange; height:20px;">
<td style="width:84px; text-align:center; color:#FFFFFF;">Nom</td>
<td style="width:84px; text-align:center; color:#FFFFFF;">Prénom</td>
<td style="width:41px; text-align:center; color:#FFFFFF;">Sexe</td>
<td style="width:84px; text-align:center; color:#FFFFFF;">Ville</td>
<td style="width:84px; text-align:center; color:#FFFFFF;">Pays</td>
<td style="width:101px; text-align:center; color:#FFFFFF;">Tél.</td>
<td style="width:161px; text-align:center; color:#FFFFFF;">E-mail</td>
<td style="width:31px; text-align:center; color:#FFFFFF;">Ch</td>
<td style="width:71px; text-align:center; color:#FFFFFF;">Arrivée</td>
<td style="width:71px; text-align:center; color:#FFFFFF;">Départ</td>
<td style="width:33px; text-align:center; color:#FFFFFF;">Adt</td>
<td style="width:33px; text-align:center; color:#FFFFFF;">Enf</td>
<td style="width:82px; text-align:center; color:#FFFFFF;">Action</td>
</tr>
</table>
</div>

<div class="panel4-reservation-web">
<?php
$sql = $bdd->prepare('SELECT * FROM reservation ORDER BY id ASC');
$sql->execute();
while($reservation = $sql->fetch())
{
?>
<table align="left" style="font-family:Verdana; font-size:9px; color:#000000;">
<tr style="background-color: white; height:15px; ">
<td style="width:83px; text-align:center; border-bottom:1px solid #666666; border-left:1px solid #666666;"><?php echo html_entity_decode($reservation['nom']); ?></td>
<td style="width:83px; text-align:center; border-bottom:1px solid #666666; border-left:1px solid #666666;"><?php echo html_entity_decode($reservation['prenom']); ?></td>
<td style="width:40px; text-align:center; border-bottom:1px solid #666666; border-left:1px solid #666666;"><?php echo html_entity_decode($reservation['sexe']); ?></td>
<td style="width:83px; text-align:center; border-bottom:1px solid #666666; border-left:1px solid #666666;"><?php echo html_entity_decode($reservation['ville']); ?></td>
<td style="width:83px; text-align:center; border-bottom:1px solid #666666; border-left:1px solid #666666;"><?php echo html_entity_decode($reservation['pays']); ?></td>
<td style="width:100px; text-align:center; border-bottom:1px solid #666666; border-left:1px solid #666666;"><?php echo html_entity_decode($reservation['tel']); ?></td>
<td style="width:160px; text-align:center; border-bottom:1px solid #666666; border-left:1px solid #666666;"><?php echo html_entity_decode($reservation['email']); ?></td>
<td style="width:30px; text-align:center; border-bottom:1px solid #666666; border-left:1px solid #666666;"><?php echo html_entity_decode($reservation['chambre']); ?></td>
<td style="width:70px; text-align:center; border-bottom:1px solid #666666; border-left:1px solid #666666;"><?php echo html_entity_decode($reservation['arrivee']); ?></td>
<td style="width:70px; text-align:center; border-bottom:1px solid #666666; border-left:1px solid #666666;"><?php echo html_entity_decode($reservation['depart']); ?></td>
<td style="width:32px; text-align:center; border-bottom:1px solid #666666; border-left:1px solid #666666;"><?php echo html_entity_decode($reservation['adulte']); ?></td>
<td style="width:32px; text-align:center; border-bottom:1px solid #666666; border-left:1px solid #666666;"><?php echo html_entity_decode($reservation['enfant']); ?></td>
<td style="width:60px; font-size:9px; text-align:center; border-bottom:1px solid #666666; border-left:1px solid #666666;">
<table>
<tr>
<td><a href="delete_reservation_web.php?supprimer=<?php echo $reservation['id']; ?>" onclick="if (!confirm('Voulez-vous supprimer cette réservation Web ?'))
return false;">Sup</a> | <a href="load_reservation.php?id=<?php echo $reservation['id']; ?>">Imp</a></td>
</tr>

</table>
</td>
</tr>
</table>
<?php
}
?>
</div>

Ensuite le Code du fichier "load_reservation.php" qui reçoit l'ID ...
<?php
/**
  • HTML2PDF Librairy - example

*
  • HTML => PDF convertor
  • distributed under the LGPL License

*
  • @author Laurent MINGUET <webmaster@html2pdf.fr>

*
  • isset($_GET['vuehtml']) is not mandatory
  • it allow to display the result in the HTML format
  • /


// get the HTML

//insertion de la requete SQL pour recuperer les infos de la reservation

include('connexion.php');
$sql = $bdd->prepare('SELECT * FROM reservation WHERE id = "'.$_GET['id'].'"');
$sql->execute();
$reservation = $sql->fetch();

ob_start();
include('./print_reservation.php');
$content = ob_get_clean();

// convert in PDF
require_once('./html2pdf_v4.03/html2pdf.class.php');
try
{
$html2pdf = new HTML2PDF('P', 'A4', 'fr');
// $html2pdf->setModeDebug();
$html2pdf->setDefaultFont('Arial');
$html2pdf->writeHTML($content, isset($_GET['vuehtml']));
$html2pdf->Output('reservation.pdf');
}
catch(HTML2PDF_exception $e) {
echo $e;
exit;
}
?>

Et enfin, le fichier qui permet de faire la mise en forme pour imprimer en PDF ...
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="Content-Type" content="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=9; IE=8; IE=7;">
<!-- Page d'accueil du site -->
<link rel="start" title="Hotel Radisson" href="../../index.php" />
<!-- Icône du site (favicon) -->
<link rel="shortcut icon" type="image/x-icon" href="../pictures/radisson1_logo_favicon.png" />
<!-- Feuilles de style -->
<link rel="stylesheet" type="text/css" href="../include/style-hlj.css" />
<title>Etat des Réservations en ligne</title>
<script language="JavaScript"><!--
var dom;
dom = document.getElementById;//browser

//déclaration variables
var timer;
var temps=new Date;
var val_heure;

function init() {
if (dom) sknheure = document.getElementById("heu");
}//end of init

function heure() {
temps= new Date;
h=temps.getHours();
m=temps.getMinutes();
s=temps.getSeconds();
val_heure=h+'h '+m+'m '+s+'s';

if (dom) sknheure.innerHTML = '<span><font color="white" face="verdana" size=-2><b>'+ val_heure +'</B></font></span>';

timer = window.setTimeout('heure()',1000); //affichage des secondes dans 1 seconde

}//end of heure
//-->
</script>
<style type="text/css">
.centre {
text-align: center;
}
.left {
text-align: right;
}
</style>
</head>

<body style="margin:auto;" onLoad="init(); heure();" onunload="clearTimeout(timer);">

<table width="890" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="150"><img src="../pictures/radisson1_logo_small.png" class="frame" /></td>
<td width="150" align="center" valign="middle"></td>
<td width="50">ID <?php print_r($_GET['id']); ?></td>
<td width="150" align="center" valign="middle"></td>
<td width="490">Brazzaville, le <?php require("date_heure_fr.php");?><span id="heu"></span></td>
</tr>
</table>

<h4 class="centre">RÉSERVATION DE CHAMBRE EN LIGNE</h4>

<table width="450" border="1" cellspacing="0" cellpadding="0">
<tr>
<td width="150" align="center" valign="middle"><h4>Nom</h4></td>
<td width="300" align="center" valign="middle"><h4><?php echo html_entity_decode($reservation['nom']); ?></h4></td>
</tr>
</table>

<table width="450" border="1" cellspacing="0" cellpadding="0">
<tr>
<td width="150" align="center" valign="middle"><h4>Prénom</h4></td>
<td width="300" align="center" valign="middle"><h4><?php echo html_entity_decode($reservation['prenom']); ?></h4></td>
</tr>
</table>

<table width="450" border="1" cellspacing="0" cellpadding="0">
<tr>
<td width="150" align="center" valign="middle"><h4>Sexe</h4></td>
<td width="300" align="center" valign="middle"><h4><?php echo html_entity_decode($reservation['sexe']); ?></h4></td>
</tr>
</table>

<table width="450" border="1" cellspacing="0" cellpadding="0">
<tr>
<td width="150" align="center" valign="middle"><h4>Ville</h4></td>
<td width="300" align="center" valign="middle"><h4><?php echo html_entity_decode($reservation['ville']); ?></h4></td>
</tr>
</table>

<table width="450" border="1" cellspacing="0" cellpadding="0">
<tr>
<td width="150" align="center" valign="middle"><h4>Pays</h4></td>
<td width="300" align="center" valign="middle"><h4><?php echo html_entity_decode($reservation['pays']); ?></h4></td>
</tr>
</table>

<table width="450" border="1" cellspacing="0" cellpadding="0">
<tr>
<td width="150" align="center" valign="middle"><h4>Téléphone</h4></td>
<td width="300" align="center" valign="middle"><h4><?php echo html_entity_decode($reservation['tel']); ?></h4></td>
</tr>
</table>

<table width="450" border="1" cellspacing="0" cellpadding="0">
<tr>
<td width="150" align="center" valign="middle"><h4>E-mail</h4></td>
<td width="300" align="center" valign="middle"><h4><?php echo html_entity_decode($reservation['email']); ?></h4></td>
</tr>
</table>

<table width="450" border="1" cellspacing="0" cellpadding="0">
<tr>
<td width="150" align="center" valign="middle"><h4>Chambre</h4></td>
<td width="300" align="center" valign="middle"><h4><?php echo html_entity_decode($reservation['chambre']); ?></h4></td>
</tr>
</table>

<table width="450" border="1" cellspacing="0" cellpadding="0">
<tr>
<td width="150" align="center" valign="middle"><h4>Arrivée</h4></td>
<td width="300" align="center" valign="middle"><h4><?php echo html_entity_decode($reservation['arrivee']); ?></h4></td>
</tr>
</table>

<table width="450" border="1" cellspacing="0" cellpadding="0">
<tr>
<td width="150" align="center" valign="middle"><h4>Départ</h4></td>
<td width="300" align="center" valign="middle"><h4><?php echo html_entity_decode($reservation['depart']); ?></h4></td>
</tr>
</table>

<table width="450" border="1" cellspacing="0" cellpadding="0">
<tr>
<td width="150" align="center" valign="middle"><h4>Nb Adulte</h4></td>
<td width="300" align="center" valign="middle"><h4><?php echo html_entity_decode($reservation['adulte']); ?></h4></td>
</tr>
</table>

<table width="450" border="1" cellspacing="0" cellpadding="0">
<tr>
<td width="150" align="center" valign="middle"><h4>Nb Enfant</h4></td>
<td width="300" align="center" valign="middle"><h4><?php echo html_entity_decode($reservation['enfant']); ?></h4></td>
</tr>
</table>


<p class="left">Fait à Brazzaville, le <?php require("date_heure_fr.php");?></p>
</body>
</html>
0
jordane45 Messages postés 36376 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 5 octobre 2022 4 366
19 juin 2020 à 18:22
Je te te répondrai plus tant que tu n'auras pas décidé d'appliquer les consignes qu'on te donne...
Je t'ai déjà répété plusieurs fois

Commence par poster ton code correctement sur le forum en utilisant les BALISES DE CODE
Explications disponibles ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code


Donc.. poste ton code correctement.... et on verra comment t'aider !
0
Red6Pc Messages postés 23 Date d'inscription mardi 16 juin 2020 Statut Membre Dernière intervention 27 avril 2022
19 juin 2020 à 18:59
... Le code du fichier "load_reservation.php" qui reçoit l'ID

include('connexion.php');
$sql = $bdd->prepare('SELECT * FROM reservation WHERE id = "'.$_GET['id'].'"');
$sql->execute();
$reservation = $sql->fetch();

ob_start();
include('./print_reservation.php');
$content = ob_get_clean();

// convert in [https://www.commentcamarche.net/fichier/pdf.php3 PDF]
require_once('./html2pdf_v4.03/html2pdf.class.php');
try
{
$html2pdf = new HTML2PDF('P', 'A4', 'fr');
// $html2pdf->setModeDebug();
$html2pdf->setDefaultFont('Arial');
$html2pdf->writeHTML($content, isset($_GET['vuehtml']));
$html2pdf->Output('reservation.pdf');
}
catch(HTML2PDF_exception $e) {
echo $e;
exit;
}


Ensuit, il ya un fichier "print_reservation.php" qui affiche les infos en PDF ... Ce bout de code pour afficher une information, le NOM DU CLIENT, par exemple :
echo html_entity_decode($reservation['nom']);
0