在浏览器中打印多页线绘图而不会出现剥落

时间:2016-11-14 16:25:01

标签: javascript svg printing

我想在浏览器中打印多页线图而不进行缩放,以便可以进行组合。一英寸需要一英寸。对齐标记和horz / vert页码将是一个加号。

我玩过SVG来完成这个并且失败了。我还创建了一个12英寸12英寸的pdf框,看起来就像我想要的那样。

我创建了fiddle次尝试。它打印但不是大规模打印,只打印在1页上。这是javascript。

        printSVG = function() {
          alert("Print")
          var popUpAndPrint = function() {

            var printWindow = window.open('', 'PrintMap');
            var toPrint = $('#toPrint')

            printWindow.document.writeln(toPrint.html())
            printWindow.document.close();
            printWindow.print();
            printWindow.close();
          };
          setTimeout(popUpAndPrint, 500);
        };

和SVG

<svg width="12in" height="12in">
  <polyline points="
       0,0 
       1200,1200
       " style="fill:none;stroke:black;stroke-width:1;" />
  <polyline points="
       1200,0 
       0,1200
       " style="fill:none;stroke:black;stroke-width:1" />
  <polyline points="
       0,0
       1200,0 
       1200,1200
       0,1200
       0,0
       " style="fill:none;stroke:black;stroke-width:1" />
</svg>

2 个答案:

答案 0 :(得分:0)

我无法得到它(在Chrome中)完全服从12in的测量值,但当我告诉它使用更大的尺寸时我接近了:https://jsfiddle.net/dnx5s6h1/16/

使用CSS(在复制的DIV内部),我告诉浏览器预计该页面是常规的8.5英寸x 11英寸,其内容为20英寸。然后,它最终服从并打印在多个页面上。

<style>
  @media only print
  {
    html, body
    {
      width: 8in;
      height: 10in;
      margin: .5in;
    }
  }
</style>

您可以随意为SVG对象添加边距,以便在页面底部打印。

答案 1 :(得分:0)

我还没有找到在浏览器中打印SVG的好方法。支持Pdf更好,所以我会尝试jsPDF