Ich habe ein Div, das ziemlich übergelaufen ist. Es enthält im Grunde ein großes Organigramm. Was ich tun möchte, exportiert den gesamten Inhalt von div eher als sichtbaren Teil mit html2canvas Bibliothek, aber ich konnte es bisher nicht erreichen. Das folgende Codeelement gibt nicht den vollständigen Inhalt wieder. Gibt es einen Weg, dies zu erreichen?HTML2Canvas konvertiert übergelaufenen Inhalt in Bild
function export(){
html2canvas([ document.getElementById('diagram') ], {
onrendered: function(canvas) {
var dataUrl = canvas.toDataURL();
window.open(dataUrl, "toDataURL() image", "width=800, height=800");
//Canvas2Image.saveAsPNG(canvas);
}
});
}
Ich verwende BasicPrimitives-Bibliothek, um Organigramme zu generieren. Es braucht ein Div und fügt alle Elemente ein. Da mein Diagramm moderat groß ist, überläuft es seinen Container. XHTML-Code lautet wie folgt:
<rich:panel style="float: left; width: 100%;">
<div style="float: left; height:600px; margin-left: 1%; width: 19%; border-style: dotted; border-width:1px;">
Some irrelevant content
</div>
<div id="diagram" class='diagram' style="float: right; height:600px; width: 59%; border-style: dotted; border-width:1px;">
This is the div all charts are dynamically inserted
</div>
<div style="float: left; height:600px; margin-left: 1%; width: 19%; border-style: dotted; border-width:1px;">
Some more irrelevant content
</div>
</rich:panel>
Vielen Dank für Ihre geniale Idee! Ich habe es geschafft, ein vollständiges Bild zu bekommen. Allerdings habe ich es etwas anders gemacht. Ich habe direkt die Containergröße geändert (eine absurde Nummer für den Moment, aber die tatsächliche Größe kann berechnet werden) und ändere dann wieder die ursprüngliche Größe. –
Siehe auch: https://github.com/niklasvh/html2canvas/issues/60 – Noyo
Das Widget unterstützt nun die AutoSize-Option, so dass es seine Größe so erweitert, dass alle Inhalte automatisch angezeigt werden. –