乐于分享
好东西不私藏

ChemDraw 插件编译与使用指南

ChemDraw 插件编译与使用指南

ChemDraw 插件编译与使用指南

一、插件的三个核心文件

一个 ChemDraw 插件由以下三个独立文件组成,缺一不可:

  1. chemdraw-addin-metadata.json描述插件的元数据(名字、版本、入口 HTML 文件名等)。

  2. main.js插件的逻辑脚本,必须定义 onLoadBody() 函数作为入口。

  3. main.html插件的显示界面,引用 main.js,并在 <body onload> 中调用 onLoadBody()

    只要引入正确的js文件地址,不需要一定命名为main.js,main.html也是同理,只要在json文件中引入正确的html地址即可,也可以引入更多的静态资源去美化插件页面


二、编译打包方法

所谓的“编译”,实质上是将上面三个文件打包成一个 ZIP 压缩包,然后把后缀名改为 .chemdrawaddin。 以下是一个python编译脚本,免去手动操作。

1. 打包脚本 build_plugin.py

该脚本只负责打包当前目录下的三个固定文件。

# build_plugin.py - 纯净打包脚本import zipfileimport osimport sys# 必须存在的三个文件FILES = ["chemdraw-addin-metadata.json","main.js","main.html"]defmain():# 检查文件是否存在for f in FILES:ifnot os.path.exists(f):            print(f"❌ 缺少必要文件: {f}")            sys.exit(1)# 生成 .chemdrawaddin(本质是 zip)    output_name = "chemdraw-plugin.chemdrawaddin"with zipfile.ZipFile(output_name, 'w', zipfile.ZIP_DEFLATED) as zf:for f in FILES:            zf.write(f, arcname=f)    print(f"✅ 打包完成: {os.path.abspath(output_name)}")if __name__ == '__main__':    main()

2. 打包步骤

  1. 将你写好的 chemdraw-addin-metadata.jsonmain.jsmain.html 三个文件,和 build_plugin.py 放在同一个文件夹内。

  2. 打开命令行,进入该文件夹,执行:

    python build_plugin.py
  3. 若一切顺利,会在当前目录生成 plugin.chemdrawaddin 文件。


三、插件的使用方法

1. 安装插件

打开ChemDraw,选择Add-ins—>Add-in Manager—>Add,选择刚才编译好的插件即可

2. 在 ChemDraw 中运行插件

选择Add-ins,点击插件名称即可运行


四、最简插件范例

下面提供一个可立刻测试的“Hello World”级插件,用于验证打包和运行流程是否正常。

chemdraw-addin-metadata.json

{"description""最简单的测试插件","version""1.0","menuItemText""Hello World","minimumAPIVersion""1.0","url""main.html"}

main.js

//// main.js///* global ChemDrawAPI */functiononLoadBody() {var output = document.getElementById("output");try {        output.innerText = "当前 ChemDraw JS API 版本:" + ChemDrawAPI.version;    } catch (e) {        output.innerText = "❌ 出错:" + e.message;    }}

main.html

<!DOCTYPE html><html><metacharset="UTF-8"><scriptsrc="main.js"></script><head><style>body {background-color: WhiteSmoke;font-family: sans-serif;text-align: center;padding20px;        }</style><title>Hello</title></head><bodyonload="onLoadBody()"><h2>ChemDraw 插件测试</h2><hr/><divid="output"style="margin-top:20px; font-family:monospace;"></div></body></html>
  1. 将上述四个文件放在同一文件夹。
  2. 运行 python build_plugin.py 得到 plugin.chemdrawaddin
  3. 按前面方法安装并运行,即可看到版本号。

五、常见问题

  • 提示“缺少文件”:请确认三个文件名完全一致(注意大小写),且和 build_plugin.py 在同一目录。
  • 插件菜单里没有显示:检查 metadata.json 中的 url 是否填写的 "main.html"
  • 报错“activeDocument 未定义”:请先打开一个化学文档再运行插件。