一个网页手写仿真工具,能够将文本、Word、PDF 文档转化为贴近真实字迹的手写图片与 PDF。;支持自定义手写字体、稿纸背景,还可调节字体偏移、墨色深浅、随机涂改等细节,实时预览效果并批量导出文件。
https://handwrite.sixiangjia.de/
--------------------------------------------------------------
将文本转为模拟手写文字的网页版
https://handwrite.sixiangjia.de/
欢迎来到我的手写文字生成网站!这个平台允许你使用现有的字体来创建模拟手写文字的图片。
网址:https://handwrite.sixiangjia.de 视频介绍: https://www.bilibili.com/video/BV1DM4y1W7fp/ 电报讨论群组:https://t.me/+zFImOziSNullOTE1
新版界面把工作区分成三栏 —— 左边调参数、中间输入文字、右边看预览:
顶栏的「旧版界面」按钮可以切回老版式,两种界面改的是同一份内容:
📖 完整文档(使用指南 / 自部署 / 开发):https://mygithub.sixiangjia.de/handwriting-web/
你可以上传自己的字体来生成符合你需求的独特手写风格。
上传你想要的背景图片,为你的手写文字添加个人风格。如果你没有背景图片,别担心!只需指定图片的宽度和高度,我的网站将自动为你生成带有横线的背景图片。
你可以完全控制各种参数,如边距(上、下、左、右),字符间的随机扰动,笔画的旋转偏移,墨水的深度变化,涂改痕迹。这使你可以微调你的手写文字的外观。
在文字输入区中,可以用独占一行的简单标记控制排版:
---(三个或更多短横线)从下一段开始强制分页。>>>放在行首,可将这一行靠右排版,适合署名和日期。
例如:
第一页内容
---
第二页内容
>>>署名
>>>2026 年 7 月 27 日
这些标记只控制排版,不会出现在生成的手写图片中。
我的网站可以从各种文件类型中提取文本内容(如 pdf,docs),使你能够方便地上传文本。
我在网站的右侧添加了预览功能。这使你可以在最终确定之前方便地查看你的手写文字图片的效果。
一旦你对预览满意,你可以生成一整套图片。这些图片将被方便地打包成一个 zip 文件,以便于下载。
一键生成 pdf,不用再手动粘贴图片
克隆项目,在项目目录中使用docker-compose up -d,默认端口为 2345
若要添加字体,字体文件放在项目根目录下的 ttf_files 中
默认配置中对容器进行了 CPU 限制:
- frontend 容器:使用 50%的 CPU
- backend 容器:使用 80%的 CPU
如果不想限制 CPU 使用,可以在 docker-compose.yml 文件中删除以下配置:
cpu_count: 1
cpu_quota: 50000 # 或 80000
cpu_period: 100000或者可以调整 cpu_quota 的值来设置不同的 CPU 使用限制。
- Python 版本: 3.8 - 3.13(推荐 3.10 或 3.11)
- Node.js 版本: 14.x 或更高
- 克隆项目到本地
- 使用 VS Code 打开项目文件夹
- 按
Ctrl+Shift+B快捷键,自动并行启动前端和后端开发服务器 - 打开浏览器,输入 http://localhost:8080 ,即可访问网站
其他可用任务(通过 Ctrl+Shift+P → Tasks: Run Task 访问):
- 🔧 安装所有依赖
- 📦 安装前端依赖
- 🐍 安装后端依赖
- 🏗️ 构建前端项目
- 🐳 启动/停止 Docker Compose
- 🧹 清理前端构建
- 克隆项目到本地
- 进入 backend 文件夹,运行后端程序
cd backend
pip install -r requirements.txt
python app.py
# 注意:服务将在 5005 端口启动- 进入 frontend 文件夹,运行前端程序
cd frontend
npm install
npm run serve- 打开浏览器,输入 http://localhost:8080 ,即可访问网站
e2e/ 目录是端到端测试套件,用真实前后端跑完整流程(真实渲染手写图片、下载附件),少数难以真实触发的分支(队列满 503 等)用路由拦截模拟。
首次运行先装依赖和浏览器(需要 Node.js 20 或更高,Playwright 的要求):
cd e2e
npm install
npx playwright install chromium然后直接在 e2e 目录下运行(会自动拉起后端 5005 和前端 8080,跑完自动关掉):
npm test- 需要数据库/依赖已就绪的后端解释器:脚本会自动探测仓库根目录的
venv,探测不到时用E2E_PYTHON指定,例如E2E_PYTHON=./venv/Scripts/python.exe npm test - 本地已在跑的开发服务器会被直接复用,不会重复启动
- 测试时会设置
CPU_USAGE_LIMIT=100,避免开发机被 webpack/浏览器占满 CPU 时误触发后端的过载保护(429) - 失败时的截图、录像和 trace 在
e2e/test-results/,HTML 报告用npm run report打开 - 每次 PR 会由
.github/workflows/e2e.yml自动跑一遍
用户请求 → Nginx(前端容器) → 反向代理 → FastAPI(后端容器)
│
▼
提交任务 → 写入 SQLite → 立即返回 task_id
│
后台协程排队执行 → Semaphore(2) 控制并发
│
handwrite() 渲染 → 保存结果到磁盘
│
用户通过轮询 或 WebSocket 获取结果
请求提交后立即返回 task_id(HTTP 200),实际的手写图像渲染在后台 BackgroundTask 中异步执行,用户通过轮询 /task/{task_id} 接口或 WebSocket 连接获取实时进度。
from https://github.com/14790897/handwriting-web


No comments:
Post a Comment