发现StarUML绘制的图片导出会有水印,写个去除水印的教程吧。我画的图导出来的效果是这样的
windows要破解StarUml,需要用到asar进行解压与打包。asar可以借助npm来安装,mac可以用homebrew安装,windows默认是不支持npm命令的,要使用npm,我们可以借助nodejs,安装nodejs默认就安装了npm,所以首先我们得安装nodejs。
1.安装nodejs
下载node:nodejs.org/zh-cn/ 安装node:配置node(可以不用配置):segmentfault.com/a/119000002…
C:\>node -v
v12.13.1
C:\>npm -v
6.12.1
则npm安装成功
2.使用npm安装asar
npm install -g asar
3.asar的压缩与解压
//压缩
asar extract 压缩文件 解压文件夹
//解压
asar pack 文件夹 压缩文件名
4.破解StarUml
a.在StarUml的安装目录下找到C:\Program Files\StarUML\resources\app.asar文件,用asar进行解压 asar extract app.asar app
如果发生如下错误,是由于权限不足,先将app.asar复制到其他文件夹,再进行解压
C:\Program Files\StarUML\resources>asar extract app.asar app
internal/fs/utils.js:314
throw err;
^
Error: EPERM: operation not permitted, mkdir 'app'
b.在解压出来的文件中找到C:\Users\w\Desktop\app\src\engine\license-manager.js
打开该文件,修改以下片段
[修改前]
[修改后]
[修改代码]
checkLicenseValidity () {
this.validate().then(() => {
setStatus(this, true)
}, () => {
//setStatus(this, false)//修改行
//UnregisteredDialog.showDialog()//修改行
setStatus(this, true)//修改行
})
}
/**
* Check the license key in server and store it as license.key file in local
*
* @param {string} licenseKey
*/
register (licenseKey) {
return new Promise((resolve, reject) => {
$.post(app.config.validation_url, {licenseKey: licenseKey})
.done(data => {
var file = path.join(app.getUserPath(), '/license.key')
fs.writeFileSync(file, JSON.stringify(data, 2))
licenseInfo = data
setStatus(this, true)
resolve(data)
})
.fail(err => {
setStatus(this, true)//修改行
//setStatus(this, false)//修改行
//if (err.status === 499) { /* License key not exists *///修改行
// reject('invalid')//修改行
//} else {//修改行
// reject()//修改行
//}//修改行
})
})
}
c.修改完保存,用asar打包,再用打包后的app.asar覆盖C:\Program Files\StarUML\resources\app.asar,这样就破解完成了
asar pack app app.asar
然后看看导出效果,已经是成功去除掉水印啦