创建PolyPDF插件 | 开发者指南
将您办公室的符号添加到 PolyPDF。没有代码,没有市场,没有审批队列。
当前应用程序:PolyPDF 1.5.2 (build 24) · 软件包格式:PolyPDF 1.3.1+ · 安装和运行插件需要 PolyPDF Pro 1.4.1+
如果您的团队在每张图纸上都标记相同的指北针、修订三角形或房间标签,您可以自行打包该设置并将其作为单个文件交给您的同事。它需要一个文本编辑器、一个绘图工具和 Node。构建包是免费的;在当前应用程序中安装、运行和编辑插件内容需要 PolyPDF Pro。
插件是数据,而不是程序
- PolyPDF 插件是艺术品和 JSON 的签名文件夹。没有 JavaScript 入口点,包中的任何内容都不会被执行。
- 您的包提供了一个符号目录、它的 SVG 图稿以及一个用 JSON 描述的表单。 PolyPDF 呈现表单,运行其自己的生成器,并通过单个不可撤消的步骤将结果作为普通注释添加到绘图中。
- 交易是经过深思熟虑的:你放弃任意行为,作为交换,你的插件不能泄露客户的图纸,不能破坏他们的应用程序,并且在任何人都可以安全安装它之前不需要任何审查过程。
人们用它建造什么
- 指北针与纸张的正北方向、修订三角形、房间和设备标签、细节标记、焊接符号、ADA 和消防安全符号、公用设施标注相匹配——办公室自己的标准符号集,每次都以正确的打印尺寸标记。
- 符号以英寸为单位放置,保持其绘制比例,旋转,并且可以带有标题 - 下方为指北针,形状内部为修订号或房间号。
- 一旦放置,它们就是正常的注释:可选择、可移动、可设计样式、可导出,并且如果插件稍后关闭或删除,它们仍然存在。
插件永远无法做到的事情
- 运行代码。没有 JavaScript,没有 WASM,没有原生库。
- 到达网络。永远不会有任何类型的请求——带有外部参考的图稿在安装时会被拒绝,因此当打开一张纸时符号无法打电话回家。
- 阅读你的文件。插件会被告知页面大小、旋转以及您点击的位置。不是文本,不是注释,不是文件名,不是 PDF 字节。
- 触摸您的文件、查看您的许可证详细信息、更改现有注释或保存任何内容。
- 这是架构性的,而不是我们承诺执行的政策:其中任何一个都没有 API。
你写的是什么
插件是一个文件夹。清单描述了它是什么以及它添加到“工具”菜单中的内容;目录列出了您的符号及其印刷尺寸;资源是纯 SVG 文件。
my-plugin/ manifest.json identity, permissions, commands, the form data/symbols.json each symbol: id, label, artwork, size in inches assets/*.svg the artwork icons/icon.png optional, 256 x 256
你如何构建它
一个文件,无依赖项,Node 18 或更高版本。它会在写入任何内容(布局、清单、权限名称、目录以及您的作品是否可接受)之前验证整个包,并命名文件并修复任何错误。
curl -O https://www.polypdf.com/plugins/polypdf-plugin-pack.mjs node polypdf-plugin-pack.mjs keygen --out ~/.polypdf-keys node polypdf-plugin-pack.mjs pack my-plugin --key ~/.polypdf-keys/polypdf-plugin-key.pem
然后将其安装到 PolyPDF 中: 插件… ▸ 从文件安装.
关于那个签名
您使用自己生成的密钥进行签名,PolyPDF 会谨慎对待这对您和文件发送对象的含义。
- 它确认该包自您构建以来没有被更改,并将您的插件固定到您的密钥:拒绝其他任何人签名的更新。
- 签名不是 PolyPDF 审查或批准。 PolyPDF 内附带的插件由 PolyPDF 签名;您自己签名的插件是一个单独的、明确标记的层。
- 安装您的插件的任何人都会首先看到一个同意屏幕:它可以用简单的语言做什么、您的密钥指纹和包校验和。插件管理器中的行显示 从文件安装 只要安装完毕。
- 备份您的私钥。由于安装是固定的,因此丢失密钥意味着您的用户必须先卸载才能获取您的下一个版本。
完整指南
完整的参考 - 每个清单字段、包格式、艺术规则、版本控制、分发和故障排除部分 - 随 PolyPDF 一起提供,网址为 docs/plugins/PLUGIN-AUTHORING.md,以及一个工作示例插件,您可以在大约一分钟内构建和安装。
没有市场。插件文件是分发版:将其放在您的 Intranet、版本或电子邮件中。在下载旁边发布其校验和和您的密钥指纹,任何人都可以验证他们是否获得了您的文件而不是其他人的文件。
问题
如果运行时无法表达您想要的绘图任务,请直接说出来,而不是解决它 - 新的运行时随应用程序一起提供,了解人们真正需要的就是如何选择下一个。