首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >仅从浏览器打印SVG

仅从浏览器打印SVG
EN

Stack Overflow用户
提问于 2014-02-09 23:16:59
回答 2查看 16.3K关注 0票数 7

我正在开发一个基于用户交互动态渲染SVG图形的网页。一旦完成,我希望用户能够打印图形只-而不是简单地打印他们所在的网页和SVG连同它,但只是SVG。此外,理想情况下,打印版本的绘制方式与屏幕上的浏览器版本略有不同。在当前的浏览器和SVG中,这种事情是可能的吗?

在Java中,我可以为我的应用程序绘图例程提供一个绘图引擎或打印引擎,这可以简单地处理相同的问题。然而,我是SVG的新手,我不能确定是否存在类似的机制。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-09 23:33:48

您可以调用window.print从javascript启动打印过程。

您可以使用media queries使打印版本和可见版本有所不同。

代码语言:javascript
复制
@media print { different css for print SVG }

如果您不希望打印页面上的现有内容,请使用媒体查询将其设置为display:none或visibility:hidden。

票数 10
EN

Stack Overflow用户

发布于 2014-02-10 08:52:45

您可以使用jQuery。假设您的svg在网页中的DIV( svgDiv )中,包括一个打印按钮,该按钮调用以下内容,其中根svg具有id=mySVG,以获取宽度/高度,或使用svgDiv宽度/高度。这将打印当前在svg窗口中的视图。

代码语言:javascript
复制
//---print button---
    var printSVG = function()
    {
        var popUpAndPrint = function()
        {
            var container = $('#svgDiv');
            var width = parseFloat(mySVG.getAttribute("width"))
            var height = parseFloat(mySVG.getAttribute("height"))
            var printWindow = window.open('', 'PrintMap',
            'width=' + width + ',height=' + height);
            printWindow.document.writeln($(container).html());
            printWindow.document.close();
            printWindow.print();
            printWindow.close();
        };
        setTimeout(popUpAndPrint, 500);
    };
票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21660843

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档