我正在使用 css/js 构建一个传单生成器。我想将最终产品输出到分层的 ai/vector。有 SVG,但我对它还不够熟悉,无法判断它是否有用。有人对我可以探索实现这一目标有什么建议吗?服务器将是节点,我当然希望服务器端处理。到目前为止,使用 PDF 是一种选择,但尚未找到如何分辨其上的图层(我承认我没有深入研究它 - 只是想立即获得一般视图)
问问题
106 次
1 回答
1
如果您的目标是矢量输出,那么 SVG 绝对是一个不错的选择。但是,您似乎想先使用 HTML,然后将其转换为某种矢量格式。使用 JavaScript 直接在浏览器中生成和操作 SVG 可能是一个更好的选择,可以避免转换过程中的麻烦,但是转换可能看起来像这样。您可以使用标准 DOM 方法来操作 SVG,也可以使用Raphaël之类的库。不过,有一些警告:
- 您必须自己处理文本换行符,因为 SVG 1.2 的
<textArea>
元素尚未得到广泛支持。 - 使文本左对齐和右对齐必须使用在操作文本时需要调整的
word-spacing
属性。您必须使用该getBBox()
方法检查文本长度并每次重新计算字间距。 - SVG 没有动态回流。位置不会根据其他元素的宽度/高度而改变。对于生成传单之类的东西,这可能被认为是更好的选择,因为一些微小的变化不会破坏整个“页面”布局。
contenteditable="true"
SVG不支持随意编辑 SVG 文本。
考虑到上述限制的一种可能的解决方法是<textArea>
,对齐文本和可编辑文本是在 SVG 中使用 HTML,<foreignObject>
并且仅将其转换为真正的 SVG 作为最后一步。
在 SVG 中,层是使用<g>
(“组”)元素实现的。
于 2012-12-18T07:09:04.277 回答