RusrF软件由来
工作原因,经常需要做大量标书。常写标书的人都知道,自己一个人的文档好处理,但是如果需要合并多个人的文档,那统一格式简直就是word的噩梦。
为什么?几个痛点:
因为很多人都没有仔细学习过word使用,他们就是把word当高级版本的记事本来使用。需要标题了,选中在段落中将文档级别设置成x级标题,然后剩下的所有标题靠手动刷。。。这统一格式,刷目录真是能让人欲仙欲死。。。
第二是那些半懂不懂的人,word样式大概知道怎么用,但是默认样式又不是自己想要的,咋办自定义样式啊。。。好了样式地狱开始了,别人的文档贴到自己的文档里,动不动就引入了一堆样式,还能将自己原来好好的样式给传染了。。。关键是那些样式只能隐藏没法删除。。。这样的文档我一般直接放弃治疗,新开一个word重新手动贴入,又一项时间杀手。。。
第三图片地狱,许多人喜欢图片之间插分页符,有的人喜欢回车换行换页,有的人喜欢格式刷。。。总之千人千面,最后合并文档那叫一个痛苦,动不动就有一个空白页,或者图片变成了标题格式在目录行莫名奇妙有个空行。。。
第四表格地狱,表格内容一多,应用个正文首行缩进,好了大段文字在表格中看不到。表格无法居中,表格超出页面等等,然后一堆人上对齐,一堆人中对齐,一堆人下对齐。。。整一个五花八门的乱。。。
第五几家标书,大公司人多一人一家,小公司就惨点。动不动需要一人做几家,还需要风格各异。谁懂啊,内容其实都差不多,只是名称、地址、法人、授权人不同,往往因为需要风格不一致,就需要从头再做一遍,真的是浪费生命的行为。
好了,吐槽了这么多,开始写正文。
如何解决
最初尝试
本来,我和编程这件事情可以说是毫不相干。几年前,是尝试找一些word文档样式风格统一插件、软件解决这些问题。但是这样的软件少,往往还是需要收费。其实收费我不抗拒,但是效果咋样我都不知道,这钱也不能打水漂啊,相关的想法也就慢慢埋在了那里。
最新尝试
直到最近,AI编程软件是越来越多。之前用trae写python处理表格,后面用Qoder尝试写一些小工具。发现其实用AI写个小工具是可行的,最主要的其实是如何提出需求。如何拆解项目。现在Gemini CLI,Qwen code都免费了,网页版的Gemini、qwen也不要钱随便玩。那就不客气了,于是构思了很项目。
项目构思
第一次构思
最初我尝试使用python直接将word文件的内容的样式统一,这样理论上是最简单的解决方案,word文档内容做好,使用这个软件刷一遍就统一格式了。想法很好,结果很惨,word文档的样式名称千奇百怪,始终无法解决文件样式的统一问题,甚至连简单的样式合并都不尽如人意。尝试几天无果。
发现宝藏
然后我发现了一个宝藏程序pandoc,简单的说它可以将md文档转换成docx文档,并且还能够指定样板docx文件。这样思路不就打开了吗,我内容不需要在word编制啊。我用md文档编制内容,pandoc负责使用样板docx将文件统一导出不就好了么?想法确实是不错,试了下,结果是OK的。
但是pandoc有几个问题:
- 他是纯命令行工具,没有图形界面,使用时不查命令,都完全不知道怎么用。
- 他有些自定义参数,比如下划线[]{.underline}。本身md文档是不支持下划线的,但是word文件特别是投标文件下划线是刚需,在一般的md编辑器中并没有好的解决办法。
发现这些问题以后,我最初是想做一个pandoc封装器功能,简单的说就是给pandoc封装一个GUI界面,让它更加易于使用。技术路线先后选了Rust+tauri和python。
第二次构思
Rust+tauri: 方案最初构思很好,web写前端,rust写后端。但是实际使用起来我发现我还是无法驾驭,单就一个web界面,我是怎么描述都没法让AI生成我想要的。状态相应啥的也是一塌糊涂,完全不可用,折腾几天后放弃。
第三次构思
python: AI写python还是最厉害的,基本上只要描述清楚了。AI生成代码一次成功,但是python程序也有几个问题。首先就是包体积,封装成exe文件的话非常大。不封装成exe文件那就需要安装python环境,非常麻烦。其实就是功能写死,基本就是单一功能代码。很显然,这个代码自己用用还行,没法用来构建一个完整功能的软件。
最终结果
经过上两个项目失败,我又尝试了一天使用go来写pandoc封装器,不出所料又失败了。不过这一次放弃的比较果断,大概只花了1天时间我就发现其实ai用go和rust其实是差不多的。我的目光又回到了rust上。
这一次我大量阅读了rust的一些成熟框架,我发现其中egui框架其实很适合写这种小需求程序。原生界面,实时刷新,不用操心回调,不用操心状态,纯Rust,demo中有现成的MD文档支持。这不是实现我这个需求的完美框架么?说干就干。
这一次异常顺利,几句话的需求就让AI生成了一个可运行无报错的demo,左侧编辑右侧显示的md编辑器。有了这个demo我心里就有底了,至少说明这个项目是可行的。
于是又回到了需求分析阶段,我到底想让这个项目实现什么功能,市面上有别的类似项目吗,显然别人做过的我就不需要做了。带着这两点我又和结合之前我个人遇到的痛点进行结合。一个项目功能的雏形就出现了:
- 一个简单的md编辑器
- 可以预览生成文件大致样子
- 可以实现MD-docx文件导出
- 支持快捷键添加符合pandoc标准的加粗、斜体、下划线、删除线、代码块等等
- 支持快速导入图片并控制图片宽度
- 支持自定义段落样式
- 支持docx-md文档导入(招标文件导入)
- 支持多md文件合并(多人编制不同部分)
- 支持变量功能(将公司名称、授权代表等做成变量,可以快速生成多家标书)
- [] 。。。
Github上我的第一个实用项目
以前都是白嫖github,现在也能反馈一个项目了。虽然我不懂编程,但是在AI时代编程不是问题,问题是需求。
如果你也在被标书编制折磨,我推荐你试一下这个软件,如果好用别忘了给我个赞,如果需要新功能也欢迎提issue。我会在这个系列文章更新我如何使用这个软件,如果你还不会用,可以收藏本站^_^
