【问题标题】:Creating and scaling SVG for printer output为打印机输出创建和缩放 SVG
【发布时间】:2012-05-15 11:05:46
【问题描述】:

我有一个应用程序可以创建一个大约 300 x 150 像素的基本 svg 磁贴。我需要复制这个图块,这样我就可以在两个 A4 页面或一个 A3 页面上创建一个漂亮的打印输出。所以,基本上,我只是在 svg 中做页面布局 101,而不是 Photoshop/whatever。

谁能给我任何关于如何开始的指示?目前,我做的很天真:

  1. 设置一个大画布,大约 1500 x 1500 像素
  2. 在 JavaScript 中将磁贴复制 4 x 6 次
  3. 从浏览器打印

这或多或少可以通过,但看起来不太好。设置物理尺寸为 A4 页面的画布是否有帮助?如果我这样做,我就会遇到问题,即图块是我当前使用像素单位创建的复杂图形。即使我这样做,浏览器也可能会忽略画布大小。还是我应该先转换成pdf?如果我这样做,我仍然需要弄清楚如何设置一个可以很好地转换为 pdf 的 svg“页面”。是否有任何工具真正支持 svg 1.2 页面内容?

请注意,我不能使用 Inkscape,因为我的 svg 代码完全是 JavaScript。

【问题讨论】:

  • 你能提供一些截图来展示它看起来不太好的方式吗?如果您可以提供一个理想的 jsfiddle,因为人们可以感觉到出了什么问题。另外,你是如何从 SVG 转换为 PDF 的?大概你在服务器上做那一点?
  • 想象一个打印在 A4 上的 Word 文档,其中 10pt 文本显示为 14pt,右边距很远,分页符丢失了,你就在那里。在发布之前我没有尝试过 pdf 转换,但我现在尝试了 wkhtmltopdf。如果我将画布设置为 297x210mm,并在没有智能缩放的情况下运行 wkhtmltopdf,并且边距为零,则输出将适合一个 A4 页面,尽管不是完全居中。然后问题是找到一些东西来设置视图框,它是合乎逻辑的,并且可以让我以像素为单位进行设计。我想我可能不得不放弃像素,转而使用 pts 和 cm。

标签: pdf layout canvas svg


【解决方案1】:

不要为此使用画布!

SVG 的重点是可缩放的图形。您可以在浏览器中自己缩放 SVG,然后从那里打印。

如果您想缩放 SVG,那么您所要做的就是应用 CSS 缩放:

http://jsfiddle.net/simonsarris/xYZyf/

或 SVG 比例尺:

http://jsfiddle.net/simonsarris/xYZyf/1/

【讨论】:

  • 截至 2014 年 7 月,CSS 缩放似乎在基于 webkit 的浏览器中不起作用
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-29
  • 2015-11-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多