在chrome预览对话框中设置自定义页面尺寸以进行打印

时间:2018-12-30 00:18:53

标签: javascript html css svg

我要尽可能清楚。我有一个由图像和文本组成的svg代码(在div内)。我需要svg代码具有特殊的宽度和高度;特别是我需要190 x 250毫米。我已经设置了此宽度,方法是将宽度设置为925px(因为我使用了从mm到px的在线转换器),而将高度设置为700px。

问题是,当我在Chrome上打开文件并继续打印(Cmd + P)时,将打开“打印”对话框,这表明我的设计将被打印在A4页面上。我有一张自定义纸张(实际上是现实生活中的纸张),它的尺寸先前已注释过,因此这就是为什么我需要它,当我打开“打印”对话框(cmd + p)时,会出现190x250mm的纸张(而不是A4,“ “那个空白)

我有一台Mac,打开打印对话框后,我可以单击“显示更多选项”之类的东西,然后设置我实际想要的纸张尺寸。但是,当我用它打印时,我的设计不能覆盖100%的纸张。

我已经尝试过使用jspdf库,将我的svg转换为具有所需尺寸的pdf。仅当在svg上使用常用字体(arial,times new roman等)时,此方法有效,但如果我使用特殊字体,则无效。

我真的非常感谢这里的帮助。非常感谢您,我的英语不好意思。希望你能理解 !

This is my svg design - simplified

This is what happen (and what i don't want to

编辑: 这就是我想要的功能(请注意打印预览如何“适合”自定义纸张尺寸)。 (图像当然是编辑的)

What i need

1 个答案:

答案 0 :(得分:0)

我需要为@page添加负页边距,以删除白色边框。但是打印机可能会决定他们想要那个利润。

*{
  margin:0;
  padding:0;
}
svg{max-width:100vh;}

@media print{
  @page{
    margin:-1em;
    padding:0;
    width:100%;
  }
  svg {
       margin:0;
       width:100%;
    }
}
<svg viewBox = "0 0 100 60">
  <rect width="100" height="100" fill="pink" />
  <text dominant-baseline="central" text-anchor="middle" x="50" y="30">TEXT</text>
</svg>

This is the result I get