78 lines
2.7 KiB
Markdown
78 lines
2.7 KiB
Markdown
# DOCXviewer
|
||
|
||
**控件功能**:用于在网页中嵌入并显示 `.docx` 文档内容,通过 Mammoth.js 将 Word 文档转换为 HTML 并渲染。
|
||
**类型**:普通控件(继承自容器控件 VBox)
|
||
**父类控件**:`bricks.VBox`
|
||
|
||
## 初始化参数
|
||
|
||
| 参数名 | 类型 | 说明 |
|
||
|-------|------|------|
|
||
| `url` | String | 指向 .docx 文件的 URL 地址,将在 `on_parent` 事件触发时加载 |
|
||
|
||
> ⚠️ 注意:需提前引入 Mammoth.js 库(如 CDN 资源)才能正常工作。
|
||
|
||
## 主要事件
|
||
|
||
| 事件名 | 触发时机 | 回调参数 | 说明 |
|
||
|--------|----------|---------|------|
|
||
| `on_parent` | 控件被添加到父容器后触发 | - | 自动调用 `set_url(this.url)` 开始加载并渲染文档 |
|
||
|
||
---
|
||
|
||
# EXCELviewer
|
||
|
||
**控件功能**:用于查看 Excel 文件(`.xlsx` 或 `.xls`),支持多工作表切换展示表格数据。
|
||
**类型**:容器控件
|
||
**父类控件**:`bricks.VBox`
|
||
|
||
## 初始化参数
|
||
|
||
| 参数名 | 类型 | 说明 |
|
||
|-------|------|------|
|
||
| `url` | String | 指向 Excel 文件的 URL 地址,在 `on_parent` 时加载 |
|
||
| `height` | String | 默认设置为 `"100%"`,确保高度占满父容器 |
|
||
|
||
## 主要事件
|
||
|
||
| 事件名 | 触发时机 | 回调参数 | 说明 |
|
||
|--------|----------|---------|------|
|
||
| `on_parent` | 控件挂载到父节点后 | - | 触发 `set_url(url)` 加载 Excel 数据 |
|
||
| `click`(子 Text 控件) | 点击某个 sheet 标签时 | sheetname, widget | 切换并显示对应的工作表内容 |
|
||
|
||
> ✅ 支持特性:
|
||
> - 动态生成工作表标签栏(HBox + Text)
|
||
> - 可滚动区域展示表格 HTML 内容(VScrollPanel)
|
||
> - 当前选中标签高亮(CSS 类 `selected`)
|
||
|
||
---
|
||
|
||
# PDFviewer
|
||
|
||
**控件功能**:用于在页面中内嵌显示 PDF 文件,逐页渲染为 Canvas 图像。
|
||
**类型**:容器控件
|
||
**父类控件**:`bricks.VBox`
|
||
|
||
## 初始化参数
|
||
|
||
| 参数名 | 类型 | 说明 |
|
||
|-------|------|------|
|
||
| `url` | String | PDF 文件的 URL 地址,由 `set_url` 使用 |
|
||
| `width` | String | 强制设为 `'100%'`,以适配父容器宽度 |
|
||
|
||
## 主要事件
|
||
|
||
| 事件名 | 触发时机 | 回调参数 | 说明 |
|
||
|--------|----------|---------|------|
|
||
| `on_parent` | 控件挂载完成后 | - | 调用 `set_url()` 启动 PDF 加载与渲染 |
|
||
| (内部 Promise) | PDF 成功加载后 | pdf 对象 | 遍历所有页调用 `add_page_content(page)` |
|
||
| (错误处理) | 加载失败时 | error | 输出 `'error'` 到控制台 |
|
||
|
||
> ✅ 渲染细节:
|
||
> - 使用 `pdfjsLib`(Mozilla PDF.js)解析和绘制 PDF
|
||
> - 每页使用 `<canvas>` 渲染,缩放比例固定为 `1.5`
|
||
> - 页面之间插入 `Splitter` 分隔条(视觉或布局用途)
|
||
|
||
> ⚠️ 注意:需确保全局已定义 `pdfjsLib` 并正确配置。
|
||
|