2016-05-13 5 views
2

Ich möchte eine Webseite in PDF konvertieren, einschließlich aller Stile, die ich hinzugefügt habe. Ich habe jspdf.js und html2Canvas verwendet. Aber ich habe nur ein unscharfes Bild im PDF-Format. Ich habe nach vielen JavaScript-Codes gesucht, aber keine richtige gefunden.Convert Webseite in ein PDF mit Stilen

Script ich geschrieben habe, ist:

function getPDF() { 
 
    html2canvas(document.body, { 
 
    onrendered: function(canvas) { 
 
     var img = canvas.toDataURL("Image/jpeg"); 
 
     //window.open(img); 
 
     var doc = new jsPDF({ 
 
     unit: 'px', 
 
     format: 'a4' 
 
     }); 
 
     doc.addImage(img, 'JPEG', 0, 0, 440, 627); 
 
     doc.save("download"); 
 

 
    } 
 
    }); 
 
}

Danke!

Antwort

0

Es kann ein paar Dinge geben, die dazu beitragen.

Ihre Encoderoptionen für die canvas.toDataURL fehlen, Sie erhalten also die Standardwerte. Die Standardeinstellungen können ein Bild mit niedriger Qualität erzeugen. Versuchen Sie, diese für höchste Qualität JPEG-Bild:

var img = canvas.toDataURL("Image/jpeg", 1.0); 

Sie auch versuchen könnten, Ihre jsPDF Objekt mit Messungen zu schaffen, anstatt Pixel:

var pdf = new jsPDF("p", "mm", "a4"); // jsPDF(orientation, units, format) 

Und wenn Sie das Bild hinzufügen, verkleinere sie auf die Dimensionen der Seite:

pdf.addImage(imgData, 'JPEG', 10, 10, 190, 277); // 190x277 mm @ (10,10)mm 

Sehen Sie, wenn das Ihnen eine bessere Bildqualität gibt.

+0

Danke Michael ... das gibt nicht die Größe von a4, das Bild gedruckt ist auch kleiner als die Größe von pdf ,, kann es durch Ändern der Abmessungen korrigiert werden, kann es nicht ?? – MSKP

+0

Ja, Sie können die Abmessungen ändern. Ich habe meine Antwort mit der korrekten Ausrichtung im jsPDF-Konstruktor aktualisiert ("p" für Hochformat) und die Abmessungen der Seite geändert. A4 ist 210 mm X 297 mm, und Sie müssen möglicherweise experimentieren, um die richtigen Abmessungen für Ihre Ausgabe zu erhalten. –

+0

danke wieder .., In meiner Webseite gibt es Radiobutton, um gezeigt zu werden.aber es erscheint nicht in dem Bild, das gedruckt wird.Es bedeutet, dass die HTML @ Leinwand diese Werte nicht nimmt? Gibt es irgendwelche Lösungen zu tun ?? – MSKP

Verwandte Themen