有个朋友提了一个需求,将签名数据生成 svg 数据,并保存为 pdf,传送到后台。

首先对 svg、pdf 的文件格式进入了初步的了解。尝试将笔迹生成 svg 格式,然后再将 svg 转化为 pdf graphic command,再将这些 command 转化为 pdf 文件。

相对之前对 svg 有所涉及,pdf 方面的入门门槛更高一点。好在并不需要实现很复杂的功能。首先通过 mediabox 定义页面的大小,然后通过对颜色配置的学习,实现了对笔迹颜色的支持,最重要的是,用过对 curv path 的格式规范的学习,实现的笔迹笔锋和压感的效果。

几种格式放大后的效果,注意 svg 格式和 pdf 格式生成的矢量图,所以没有失真和锯齿的问题:

下一步是优化生成的 svg, pdf 的笔迹效果。

以及支持笔迹与 pdf 的合成,即可以在原始 pdf 上书写,例如电子签名等。

最近太忙,事情太多,希望能抽出时间来完善吧。

我们公司也有这个需求,请联系我说道: