插件介绍
sv-print插件是结合底层逻辑。使用hook实现的插件机制。在特定的时机执行,实现插件功能。例如: 新增文本,图片元素的新样式参数, 新增echarts图表元素,bwip-js元素, 自定义全局快捷键等。
| hook | 说明 | 回调参数 | 备注 | 
|---|---|---|---|
| init | hiprint.register时的 hook | ConfigOptionItemsElementTypeshinnnhiprint | 可实现自定义参数 | 
| ready | $(document).ready时的 hook | pwindow | ready时处理 | 
| documentShortcutKeys | 全局快捷键hook | panelevent | 自定义全局快捷键 如: Ctrl + 1 | 
| shortcutKeys | 面板快捷键hook当设计面板获取到焦点时的快捷键 | panelevent | 如: Ctrl + B将选中元素 字体加粗 | 
| createPrintElement | 创建元素hook | ConfigBasePrintElementOptionsSuppereleeleOpt | 配合 init、beforePrint等 hook 自定义新的元素 | 
| newPrintTemplate | 创建模板对象hook | templateoptions | |
| newPanel | 创建面板对象hook | paneloptions | |
| onDesigned | 设计器创建完成hook | hiprintdesignerUtils | |
| onPreview | 点击预览hook | root | root DOM | 
| getOptionItem | 渲染元素参数前hook处理元素 参数渲染 | item | ==返回该 item= | 
| beforePrint | 浏览器打印前hook处理新元素 打印样式 | templateinfoopts | 返回该 3 个参数 | 
| beforePrint2 | 直接打印前hook处理新元素 打印样式 | templateinfo | 返回该 2 个参数 | 
温馨提示
部分 hook 回调的参数不太好 翻译 它的具体作用。请 log 查看。
编写插件,可以同时使用多个hook。
插件格式
可使用 ts, js 编写插件。
import type {PluginOptions} from "sv-print";
/**
 * 插件
 * @param config 自定义 你插件的 配置
 */
export default function (config?: any): PluginOptions {
  let configs = {
    ...config,
  };
  // 插件主体
  return {
    name: "scale", // 插件名称
    description: "缩放参数", // 插件描述
    leastHiprintVersion: "0.1.0", // 最低兼容版本
    hooks: [
      // 接受多个 hook 组合
      {
        hook: "init", // 这是 hook 关键
        name: "scale", // 名称(可选) 
        description: "scale", // 描述(可选)
        priority: 1, // 排序优先级 (可选)
        run: ({Config, OptionItems, hinnn, hiprint}) => {
          //  编写 init hook 回调
        },
      },
      {
        hook: "getOptionItem",
        run: (item) => {
          //  编写 getOptionItem hook 回调
          console.log(item);
          return item;
        },
      }
    ],
  };
}