Mam div, który jest dość przepełniony. Zasadniczo zawiera duży schemat organizacyjny. Co chcę zrobić, to eksportowanie całej zawartości div zamiast widocznej części przy użyciu biblioteki html2canvas, ale nie udało mi się tego osiągnąć. Poniższy fragment kodu nie renderuje pełnej treści. Czy istnieje sposób, aby to osiągnąć?HTML2Canvas konwertowanie przepełnionej treści do obrazu
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);
}
});
}
Używam biblioteki BasicPrimitives do generowania wykresów organizacyjnych. Zajmuje element div i wstawia do niego wszystkie elementy. Ponieważ mój wykres jest umiarkowanie duży, przepełnia go jego kontener. kod XHTML jest w następujący sposób:
<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>
Dziękujemy za genialny pomysł! Udało mi się uzyskać pełny obraz. Jednak zrobiłem to trochę inaczej. Zmieniłem bezpośrednio rozmiar pojemnika (na razie liczbę absurdu, ale można obliczyć rzeczywisty rozmiar), a następnie zmienić z powrotem na pierwotny rozmiar. –
Zobacz także: https://github.com/niklasvh/html2canvas/issues/60 – Noyo
Widżet obsługuje teraz opcję AutoSize, dzięki czemu rozszerzy swój rozmiar, aby automatycznie wyświetlić całą zawartość. –