javascript - 在 chrome 预览对话框中设置自定义页面大小以进行打印

标签 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

最佳答案

我需要向@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

关于javascript - 在 chrome 预览对话框中设置自定义页面大小以进行打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53974359/

相关文章:

javascript - React setState 没有在第一次触发

jquery - 在 div 外部单击时隐藏它

html - 使用绝对位置列出过早换行的元素

javascript - jQuery UI 是如何工作的?

JavaScript 编码风格 : curly brace after multiline condition

javascript - 比较 JS 中的输入值

javascript - jQuery - child 的麻烦

javascript - 如果 php post 为空则隐藏字段

html - 如何使用 HTML5 和 CSS 3 将按钮放置在一个圆圈周围?

javascript - 有没有更快的方法来清空 HTML 选择框?