JavaScript/html2pdf: Wieso werden die Seiten nicht richtig gedruckt?


24.10.2024, 21:22

Ich scheine das Problem mitlerweile gefunden zu haben und zwar lag es daran das ich im CSS definiert habe das der div ".label" eine Größe von 60x30mm hat und das scheint in html2pdf Probleme zu haben, nachdem ich die größen Angabe entfernt habe, generiert er das PDF ohne Probleme.

Mitlerweile sieht mein Code wie folgt aus:

.label-page {
   width: 60mm !important;
   height: 30mm !important;
   border:1px solid green;
}
        
.html2pdf__container .label-page {
/*Klasse die in html2pdf beim PDF generieren hinzugefuegt wird*/
   width: auto !important;
   height: auto !important;
   border:none;
}

2 Antworten

Die html2pdf-Bibliothek hat eigene Optionen, mit denen Seitenumbrüche spezifiziert werden können. So könntest du beispielsweise vorgeben, dass nur vor jedem .label-Container (mit Ausnahme des ersten) ein Seitenumbruch eingefügt werden soll und ansonsten nirgendwo.

const options = {
  pagebreak: {
    before: ".label ~ .label",
    mode: "avoid-all"
  },
  /* your other options ... */
};
const elementToPrint = document.getElementById("element-to-print");
html2pdf().set(options).from(elementToPrint).save();

Lies mehr dazu in der Dokumentation.

Welchen Sinn hat denn die 2 fache Darstellung von Absatz der Klasse label-text-center? Wenn Du einen Absatz weglässt müsste das doch passen.

Woher ich das weiß:Berufserfahrung – Web Developer bei einem mittelständischen Portalbetreiber

CoSci 
Beitragsersteller
 08.10.2024, 08:38

Der sinn ist das ich gerne einmal Artikelname, Artikelnummer und dann die Ean mit Barcode ausgeben will