Code JS qui ne s'execute pas

Rb0635 Messages postés 4 Date d'inscription samedi 21 janvier 2023 Statut Membre Dernière intervention 13 février 2024 - 13 févr. 2024 à 20:13
jordane45 Messages postés 38168 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 8 mai 2024 - 13 févr. 2024 à 20:51

Bonjour,

J'ai une page HTML/JS toute simple qui, pour un code donné, génère un QRCode sur un PDF.
Sauf que le PDF ne se génère pas.
J'ai essayé de passer par la console de debug mais je ne vois pas ce qui bloque.

Une idée ?

 

<!DOCTYPE html>
<html lang="fr">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Contremarque Generator</title>
  <!-- Bootstrap CSS -->
  <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
  <!-- QR Code CSS -->
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@zxing/library@3.0.0/types/css/QRCode.css">
</head>
<body>
  <div class="container mt-5">
    <h1 class="text-center mb-4">Contremarque Generator</h1>
    <div class="row">
      <div class="col-md-6">
        <div class="form-group">
          <label for="codeList">Liste de codes:</label>
          <textarea class="form-control" id="codeList" rows="5"></textarea>
        </div>
      </div>
      <div class="col-md-6">
        <div class="form-group">
          <label for="datepicker">Choisir une date:</label>
          <input type="date" class="form-control" id="datepicker">
        </div>
        <button class="btn btn-primary btn-block" id="generateBtn">Générer PDF</button>
      </div>
    </div>
  </div>

  <!-- Bootstrap JS -->
  <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>
  <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js"></script>
  <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
  <!-- QR Code Generator -->
  <script src="https://cdn.jsdelivr.net/npm/@zxing/library@3.0.0"></script>
  <!-- jsPDF -->
  <script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.5.3/jspdf.umd.min.js"></script>
  

  <script>
    document.getElementById('generateBtn').addEventListener('click', generatePDF);

    async function generatePDF() {
      const codeList = document.getElementById('codeList').value.split('\n').map(code => code.trim()).filter(Boolean);
      const selectedDate = document.getElementById('datepicker').value;

      if (codeList.length === 0 || selectedDate === '') {
        alert('Veuillez entrer au moins un code et sélectionner une date.');
        return;
      }

      const doc = new jsPDF();
      const qrCodeSize = 150;
      const margin = 10;
      const pageHeight = doc.internal.pageSize.height;
      let currentY = margin;
      

      for (let i = 0; i < codeList.length; i++) {
        if (currentY + qrCodeSize > pageHeight) {
          doc.addPage();
          currentY = margin;
        }

        const qrDataUrl = await QRCode.toDataURL(codeList[i]);
        doc.addImage(qrDataUrl, 'JPEG', margin, currentY, qrCodeSize, qrCodeSize);
        doc.setFontSize(12);
        doc.text(margin, currentY + qrCodeSize + 10, `Code: ${codeList[i]}`);
        doc.text(margin, currentY + qrCodeSize + 20, `Date: ${selectedDate}`);
        currentY += qrCodeSize + 40;
      }
      doc.save('contremarque.pdf');
    }
  </script>
</body>
</html>
A voir également:

1 réponse

jordane45 Messages postés 38168 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 8 mai 2024 4 659
13 févr. 2024 à 20:51

Bonjour,

Tu ne vois pas ce qui bloque dans la console ????

Pour commencer, tes liens ne sont pas bons...

Il faut que tu trouves une autre source pour tes librairies


0