#svg #printing #printable #cards #traits #thiserror #anyhow

mksvg

一个用于编写 SVG 和布局可打印卡的crate

6 个版本

0.3.0 2020年5月30日
0.2.1 2020年4月8日
0.1.3 2019年3月30日
0.1.1 2018年6月25日

#444 in 图像

每月下载 31

MIT 许可证

42KB
1K SLoC

Mksvg

Rust 的 Svg 打印器

变更

0.3.0

重大变更 -- 现在使用 anyhow 和 thiserror 替代 failure 和 failure_derive 重大变更 -- 现在通过错误类型传递,该类型现已附加到 SvgWrite Trait

0.2.1

主要变更,现在所有标签都必须使用 Tag::tagname 功能添加。这意味着 SvgWrite 不再依赖于泛型,可以成为动态类型。

要包裹一个标签,使用

let mut inner_writer = Tag::g().transform(3,4).wrap(outer_writer);
Tag::rect(5,6,100,100).write(&mut inner_writer);

inner_writer 被丢弃时,outer_writer 将再次可写,确保 SVG 结构正确

页面绘制库现在也已更改为使用 Builder 模式。

例如


let files = page::Pages::build(cards).page_size(400,500).grid_size(4,4).write_pages("base/path_");

0.1.3

  • 添加了两个新的主要类型。标签和文本,现在可以使用 write 在 SvgWrite 上构建和完成,例如:Tag::rect,y,w,h).fill,"red").write<S:SvgWrite>(S:S);

  • 文本还有一个名为 bg 的特殊方法,它添加了位于其后面的项目的副本,以允许有宽的笔画而不覆盖内部。

0.1.2

  • 现在 g 和 start 方法返回 TransWrap 对象,写入此对象时将像属于 svg 一样写入
  • 不再需要调用 endg_end,因为丢弃将写入关闭。
  • 如果 "g" 元素为空,则不会写入

依赖

~0.6–1.2MB
~25K SLoC