Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Printing 在单独的页面上打印大型SVG图表_Printing_Svg - Fatal编程技术网

Printing 在单独的页面上打印大型SVG图表

Printing 在单独的页面上打印大型SVG图表,printing,svg,Printing,Svg,我试图从浏览器打印一个大的SVG图表,SVG图表嵌入到HTML中。图表的宽度/高度设置为绝对值。打印只打印SVG图表的一部分,不管多大部分可以放在一页上,并将其余部分截去。有没有办法将图表拆分成单独的页面?这完全取决于您使用什么浏览器来查看SVG。或者尝试其他浏览器。。。Safari具有强大的打印功能(至少在Mac上)。。或“隔离”SVG。。查看源代码,找出嵌入SVG的相对URL,并将其输入URL栏 <td><object id="object" type="image/svg

我试图从浏览器打印一个大的SVG图表,SVG图表嵌入到HTML中。图表的宽度/高度设置为绝对值。打印只打印SVG图表的一部分,不管多大部分可以放在一页上,并将其余部分截去。有没有办法将图表拆分成单独的页面?

这完全取决于您使用什么浏览器来查看SVG。或者尝试其他浏览器。。。Safari具有强大的打印功能(至少在Mac上)。。或“隔离”SVG。。查看源代码,找出嵌入SVG的相对URL,并将其输入URL栏

<td><object id="object" type="image/svg+xml" data="**smiley.svg**">Please use a modern browser!</object></td>
<td><iframe id="iframe" src="**smiley.svg**">Please use a modern browser!</iframe></td>
<td><embed id="embed" src="**smiley.svg**" type="image/svg+xml" /></td>
<td><img id="img" alt="smiley face" src="**smiley.svg**" /></td>
请使用现代浏览器!
请使用现代浏览器!
或者从内联源代码复制并粘贴实际的SVG代码,并将其粘贴到扩展名为.SVG的纯文本文档中

<svg xmlns="http://www.w3.org/2000/svg" version="1.1"
viewBox="0 0 100 100" preserveAspectRatio="xMidYMid slice"
style="width:100%; height:100%; position:absolute; top:0; left:0; z-index:-1;">
<linearGradient id="gradient">
<stop class="begin" offset="0%"/>
<stop class="end" offset="100%"/>
</linearGradient>
<rect x="0" y="0" width="100" height="100" style="fill:url(#gradient)" />
<circle cx="50" cy="50" r="30" style="fill:url(#gradient)" />
</svg>


然后,您可以使用多种应用程序,从Illustrator到免费应用程序,或许多其他应用程序,将其处理(或打印)到您的心形内容中。

使用phantomjs.org项目在服务器上生成图表图像。 它允许通过URL将任何HTML页面加载到无头WebKit机器中,并将其呈现为PNG。 此外,您还可以获得页面的最终大小,然后通过在循环中定义剪辑区域将其剪切为和平

例如,下一个示例将页面中的几个图表导出到文件系统中的单独PNG图像中。之后,您可以组装新网页或将其打包为PDF格式,并向用户提供下载链接。这将是web应用程序最可靠、最稳定的打印解决方案

var page = require('webpage').create();
page.viewportSize = { width: 1280, height : 1024 };
page.open('http://chart.html', function () {
    page.clipRect = page.evaluate(function () {
        var chart = jQuery("#chart1");
        return { top: chart.offset().top, left: chart.offset().left, width: chart.outerWidth(), height: chart.outerHeight() };  
    });
    page.render('chart1.png');
    page.clipRect = page.evaluate(function () {
        var chart = jQuery("#chart2");
        return { top: chart.offset().top, left: chart.offset().left, width: chart.outerWidth(), height: chart.outerHeight() };  
    });
    page.render('chart2.png');    
    page.clipRect = page.evaluate(function () {
        var chart = jQuery("#chart3");
        return { top: chart.offset().top, left: chart.offset().left, width: chart.outerWidth(), height: chart.outerHeight() };  
    });
    page.render('chart3.png');        
    phantom.exit();
});

我能做些什么来更改SVG代码,使其在IE7的单独页面上打印?是的,我给你的说明是通用的。页面中的“查看源”。。你会看到,SVG只不过是一串单词,开头和结尾都是
如果你不愿意提取它们并用一个不那么糟糕的软件打印,我相信有很多不同的方法可以从IE7“打印”,无论是通过免费的还是adobe PDF插件、Microsoft XPS,或者任何它叫什么,或者简单地拍一张屏幕截图,然后打印出来!!但不管你做什么,别忘了把我的答案作为解决方案。这才是真正重要的,哈哈。J/k。谢谢亚历克斯。最后一个问题,我需要对SVG代码进行哪些更改以分解图表进行打印?我可以添加普通的HTML onBeforePrint标记并在JS中调用它来添加分页符吗?还是有一些独特的svg代码会在打印时将其分解?