html5-canvas - 打印整个 Cytoscape.js HTML5 Canvas 。不只是可见的部分

标签 html5-canvas cytoscape.js

我正在使用 Cytoscape.js,我正在尝试打印整个图表,而不仅仅是可见部分。如果用户放大,我希望它会打印在很多页上。

我所能得到的最好的只是可见的部分。

令我惊讶的是 Cytoscape.js 中没有内置打印功能。

<script>
    function printCanvas() {

        var padding = 10; // padding around found objects
        var canvases = $('canvas');
        var context = canvases[2].getContext('2d');
        // find borders of a rectange covering all objects

        var newWidth = canvases[2].width;
        var newHeight = canvases[2].height;

        // create a new canvas
        var newcanvas = document.createElement('canvas');
        newcanvas.width = newWidth + 2 * padding;
        newcanvas.height = newHeight + 2 * padding;
        var newcontext = newcanvas.getContext('2d');

        // copy data to the new canvas
        newcontext.putImageData(context.getImageData(0, 0, newWidth, newHeight), padding, padding);

        popup = window.open();
        popup.document.body.innerHTML = "<img src='" + newcanvas.toDataURL('png') + "' />";

        popup.print();
    }
</script>

最佳答案

您可以将整个图表作为 PNG 或 JPG 图像获取:

cy.png({full: true})

有关更多详细信息,请参阅documentation .

关于html5-canvas - 打印整个 Cytoscape.js HTML5 Canvas 。不只是可见的部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52543656/

相关文章:

cytoscape.js - cy.on ('select' ) 仅回调一次

Cytoscape.js,在边缘顶部放置标签文本

javascript - ChartJS 2.0 - 饼图上的 Huddle 标签

javascript - 当每个节点的子节点数大于 5 时,图形飞出屏幕

javascript - CYTOSCAPE JS中如何高亮显示两个节点之间的路径

javascript - 如何检索写在 Canvas 上的文本作为字符串

javascript - 如何使用:not selector in Cytoscape. js? (选择没有属性的节点)

javascript - 在 Javascript 中显示 tilemap

javascript - 用 JavaScript 和 HTML5 Canvas 实现的元胞自动机

javascript - FabricJS V.2 删除多个对象