Home

Awesome

<div style="background-color: #fff1f0; padding: 15px; border-left: 4px solid #ff4d4f; margin-bottom: 20px;"> <h2 style="color: #ff4d4f; margin-top: 0;">⚠️ 安全警告</h2> <p style="color: #cf1322; font-weight: bold;"> 本项目仅供学习和参考!严禁用于任何非法用途! </p> <p style="color: #cf1322;"> 1. 本项目开源代码仅用于技术学习和交流。<br> 2. 使用本项目生成的任何图片请勿用于任何非法用途。<br> 3. 因违法使用本项目造成的任何法律责任和损失,需自行承担,与本项目无关。<br> 4. 如果使用本项目请遵守相关法律法规。<br> </p> </div>

npm

简介

DrawStampUtils.js 是一个使用 TypeScript 制作电子印章的工具。该项目Demo使用 Vue 3,源码使用TypeScript,并通过 Vite 进行开发和构建。

🔍 在线预览点击这里体验在线印章制作工具

📦 提取印章工具:为了减少大小,提取印章功能已移至独立项目 extractstamp


目录

安装

在已有项目使用drawstamputils,使用如下命令安装:

npm install drawstamputils

如果要查看示例程序,可以如下方式:

git clone https://github.com/xxss0903/drawstamputils.git
cd drawstamputils
npm install

使用

开发

启动开发服务器:

npm run dev

构建

构建项目:

npm run build

预览

预览构建结果:

npm run preview

效果展示

以下是使用 DrawStampUtils.js 生成的电子印章示例:

Stamp Example Stamp Example Stamp Example Stamp Designer DrawStampUtils.ts 使用说明

DrawStampUtils.ts 是该项目的核心文件之一,用于生成电子印章。以下是如何使用 DrawStampUtils.ts 的示例:

提取印章

提取印章放到了新的库:extractstamp <br> 效果更好,颜色提取更好<br> Stamp Designer Stamp Designer

// 将imgFile替换为你的图片文件,#ff0000替换为你想要的目标颜色,#ff0000替换为你想要的目标颜色
drawStampUtils.extractStampWithFile(imgFile, '#ff0000', '#ff0000')

创建印章

使用 DrawStampUtils 创建一个新的印章:

// 将canvasRef替换为你的canvas元素,MM_PER_PIXEL替换为你的毫米换算像素,根据需要修改
const drawStampUtils = new DrawStampUtils(canvasRef, MM_PER_PIXEL)
drawStampUtils.refreshStamp()

模板功能

DrawStampUtils 支持将当前印章的所有配置保存为模板文件,以及从模板文件中加载配置。 Stamp Template

保存模板

可以通过以下方式将当前印章的所有配置保存为 JSON 格式的模板文件:

// 获取当前配置
const drawConfigs = drawStampUtils.getDrawConfigs()
// 将配置转换为 JSON 字符串
const jsonStr = JSON.stringify(drawConfigs, null, 2)

模板文件包含了印章的所有配置信息,包括:

加载模板

可以通过以下方式从模板文件中加载配置:

// 读取模板文件内容,自定义一个readTemplateFile方法读取json数据
const jsonStr = await readTemplateFile() // 从文件中读取 JSON 字符串
const configs = JSON.parse(jsonStr)

// 设置新的配置
drawStampUtils.setDrawConfigs(configs)

加载模板后,所有配置项会立即更新,印章会根据新的配置重新绘制。

模板用途

模板功能可用于:

  1. 保存常用的印章样式,方便重复使用
  2. 在不同项目间共享印章配置
  3. 备份当前的印章设置
  4. 快速切换不同的印章样式

配置选项<br>

详细的配置请参考Demo文件DrawStampUtilsDemo.vue中的配置方法

DrawStampUtils 支持以下配置选项:

以下是 DrawStampUtils 支持的主要配置选项及其功能:

配置选项功能描述
ISecurityPattern控制防伪纹路的相关参数
- openSecurityPattern是否启用防伪纹路
- securityPatternWidth设置防伪纹路的宽度
- securityPatternLength设置防伪纹路的长度
- securityPatternCount设置防伪纹路的数量
- securityPatternAngleRange设置防伪纹路的角度范围
ICompany控制印章公司相关的参数
- companyName设置公司名称
- compression控制公司名称的压缩比例
- borderOffset设置边框偏移量
- textDistributionFactor控制文字分布因子
- fontFamily设置字体
- fontHeight设置字体高度
- adjustEllipseText是否调整椭圆文字间距
- adjustEllipseTextFactor椭圆文字间距调整因子
ICode控制印章编码相关的参数
- code设置编码内容
- compression控制编码的压缩比例
- fontHeight设置编码字体大小
- fontFamily设置编码字体
- borderOffset设置编码边框偏移量
- fontWidth设置编码字体宽度
- textDistributionFactor控制编码文字分布因子
ITaxNumber控制税号相关的参数
- code设置税号内容
- compression控制税号的压缩比例
- fontHeight设置税号字体大小
- fontFamily设置税号字体
- fontWidth设置税号字体宽度
- letterSpacing控制税号字符间距
- positionY设置税号文字垂直位置
- totalWidth设置税号文字总宽度
IAgingEffectParams控制做旧效果的相关参数
- x设置做旧效果的 x 轴位置
- y设置做旧效果的 y 轴位置
- noiseSize控制噪声大小
- noise控制噪声强度
- strongNoiseSize控制强噪声大小
- strongNoise控制强噪声强度
- fade控制淡化强度
- seed设置随机种子
IRoughEdge控制印章边缘毛边效果的相关参数
- shouldDrawRoughEdge是否绘制毛边效果
- roughEdgeWidth设置毛边宽度
- roughEdgeHeight设置毛边高度
- roughEdgeProbability控制毛边出现的概率
- roughEdgeShift设置毛边偏移量
- roughEdgePoints设置毛边点的数量
IStampType控制印章类型文字的相关参数
- stampType设置印章类型文字
- fontHeight设置印章类型文字高度
- compression设置印章类型文字压缩比例
- letterSpacing设置印章类型文字字符间距
- positionY设置印章类型文字位置
- fontWidth设置印章类型文字宽度
- lineSpacing设置印章类型文字行间距
IDrawStar控制五角星/图片相关的参数
- drawStar是否绘制五角星/图片
- useImage是否使用图片代替五角星
- imageUrl图片的URL
- imageWidth图片宽度(mm)
- imageHeight图片高度(mm)
- keepAspectRatio是否保持图片原始宽高比
- starDiameter五角星直径(使用五角星时有效)
- starPositionY五角星/图片的垂直位置
companyList公司名称列表,支持多行公司名称
- companyName设置公司名称
- compression控制公司名称的压缩比例
- borderOffset设置边框偏移量
- textDistributionFactor控制文字分布因子
- fontFamily设置字体
- fontHeight设置字体高度
- fontWeight设置字体粗细
- adjustEllipseText是否调整椭圆文字间距
- adjustEllipseTextFactor椭圆文字间距调整因子
stampTypeList印章类型列表,支持多行印章类型
- stampType设置印章类型文字
- fontHeight设置字体高度
- fontFamily设置字体
- compression设置压缩比例
- letterSpacing设置字符间距
- positionY设置垂直位置
- fontWidth设置字体宽度
- fontWeight设置字体粗细
- lineSpacing设置行间距
innerCircleList内圈圆形列表,支持多个内圈圆形
- drawInnerCircle是否绘制该内圈圆形
- innerCircleLineWidth设置内圈圆形的线宽
- innerCircleLineRadiusX设置内圈圆形的水平半径
- innerCircleLineRadiusY设置内圈圆形的垂直半径

完整示例 DrawStampUtilsDemo.vue中的方法作为参考

贡献

欢迎贡献代码!请先 fork 本仓库,然后提交 pull request。

许可证

本项目使用 Apache 许可证。

Stargazers over time

更新日志

v0.2.2 (2024-11-20)

v0.2.1 (2024-11-16)

v0.2.0 (2024-11-15)

v0.1.0 (2024-09-27)

v0.0.9 (2024-09-27)

v0.0.8 (2024-09-27)

v0.0.6 (2024-09-27)

v0.0.5 (2024-09-26)