QR Code dans un PDF

Signaler
Messages postés
6
Date d'inscription
mardi 16 juin 2020
Statut
Membre
Dernière intervention
22 juin 2020
-
Messages postés
6
Date d'inscription
mardi 16 juin 2020
Statut
Membre
Dernière intervention
22 juin 2020
-
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

Messages postés
28870
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
3 juillet 2020
2 590
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.


Messages postés
6
Date d'inscription
mardi 16 juin 2020
Statut
Membre
Dernière intervention
22 juin 2020

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.
Messages postés
28870
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
3 juillet 2020
2 590 >
Messages postés
6
Date d'inscription
mardi 16 juin 2020
Statut
Membre
Dernière intervention
22 juin 2020

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 ??
Messages postés
6
Date d'inscription
mardi 16 juin 2020
Statut
Membre
Dernière intervention
22 juin 2020

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 :

Messages postés
28870
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
3 juillet 2020
2 590
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;
 }
Messages postés
6
Date d'inscription
mardi 16 juin 2020
Statut
Membre
Dernière intervention
22 juin 2020

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>
Messages postés
28870
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
3 juillet 2020
2 590
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 !
Messages postés
6
Date d'inscription
mardi 16 juin 2020
Statut
Membre
Dernière intervention
22 juin 2020

... 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']);