MikeCat2008/smartboard-notebook-exporter
GitHub: MikeCat2008/smartboard-notebook-exporter
一个开源的本地转换工具,用于将 Smartboard 交互式白板的 .notebook 文件导出为 PDF、PNG、SVG 等多种通用格式。
Stars: 1 | Forks: 0
# Smartboard notebook 导出器
在本地以你想要(以及我们所支持)的任何方式导出你的 Smartboard `.notebook` 文件。
"Smartboard notebook Exporter" (`sbne`) 是一个使用 Python 编写的免费开源项目,旨在将你的 Smartboard `.notebook` 文件中的数字白板导出为其他类型的文件(`pdf-png-merged` 除外),同时保持所有操作在本地进行。
该程序允许你获取 `.notebook` 文件(你可以从白板将其保存到外部存储介质中)并在你的计算机上进行转换。它打破了 Smarttech 仅能将每一页以光栅化位图形式导出为 PDF (`pdf-png-merged`) 的限制,为你提供了更大的灵活性。
### 工作原理
当向 `sbne` 提供一个 `.notebook` 文件时,它会解压该文件以访问每一页,这些页面以独立的 `.svg` 文件形式存储。随后,它会修复每个 `.svg` 以调整其画布大小,并将所有内容对齐到新画布。最后,所有修复后的 `.svg` 文件都将被导出为所需的输出类型。
### 支持的输出类型
- `svg-fixed-pages`:包含所有修复后 `.svg` 页面的 zip 文件。
- `png-pages`:包含所有以光栅化 `.png` 文件形式页面的 zip 文件。
- `pdf-svg-pages`:包含独立 `.pdf` 文件(基于矢量)的 zip 文件。
- `pdf-svg-merged`:包含所有以修复后 `.svg`(基于矢量)形式页面的单个 PDF 文件。
- `pdf-png-pages`:包含独立 `.pdf` 文件(基于光栅)的 zip 文件。
- `pdf-png-merged`:包含所有以光栅化 `.png` 文件形式页面(基于光栅)的单个 PDF 文件。
### 文档
- [格式深入探讨](docs/notebook-format.md):有关 `.notebook` 文件、其内部结构以及数据存储方式的信息。
- [测试指南](docs/testing.md):有关测试文件以及如何检查导出器是否正常工作的详细信息。
## 环境要求
### 二进制文件
- [***二进制文件***](https://github.com/MikeCat2008/smartboard-notebook-exporter/releases/latest) :3
完全没有任何要求,只需下载与你的计算机兼容的可执行文件即可! :D
### 源代码
- **Python**:3.10 或更高版本(推荐 3.12 或 3.13)。
- **Python Pip**:如果 Python 包中未包含,版本需与 Python 相同。
- **Python venv**:如果 Python 包中未包含,版本需与 Python 相同。
- **Python Tkinter**:如果 Python 包中未包含,版本需与 Python 相同。
- **系统依赖**:Cairo。
- **依赖项**:已在 [`requirements.txt`](requirements.txt) 中列出。
## 安装说明
### 从二进制文件安装
下载并运行完全可移植的二进制版本来使用此程序。无需管理员/超级用户权限。仅提供 GUI(图形用户界面)。
你只需从该仓库的 [Releases 选项卡](https://github.com/MikeCat2008/smartboard-notebook-exporter/releases/latest) 下载适用于你的操作系统和主机架构的二进制文件并运行此程序。如果在 Releases 选项卡中没有出现你的操作系统/主机架构,你需要从源代码安装此程序并运行,或者针对你的设备构建特定的二进制文件。
**可用的二进制文件**
### 从源代码安装
通过源代码安装并运行此程序。
## 构建
要构建此程序的二进制文件,前提是已经完成了从源代码的安装,并且至少运行过一次以确保安装过程一切正常。
要构建此程序,请激活安装时的虚拟环境 (`.venv`) 并运行与安装所在的操作系统相对应的 `build` 脚本:Linux 系统使用 `.sh`,Windows 使用 `.bat`。当脚本完成程序的打包和构建后,生成的二进制文件将被放置在此项目主目录下的 `dist/` 文件夹中。此二进制文件是完全可移植的,无需超级用户/管理员权限即可运行。
构建脚本使用 PyInstaller 将源代码连同 Python 解释器、所需的所有 Python 库以及这些 Python 库所需的任何系统库一起打包到一个单一且可移植的可执行文件中。需要特别注意的是,PyInstaller 生成的二进制文件不能跨平台兼容,这意味着,例如,为 Windows 编译的二进制文件将无法在 Debian 上运行,反之亦然。
## 使用说明
安装完成后,按照你所选安装方法中的说明运行程序。
CLI 将引导你选择你的 `.notebook` 文件,并配置所需输出格式的参数。
- **`.notebook` 文件路径**:你的 `.notebook` 文件的路径(绝对路径或相对路径)。
- **导出类型**:在 6 种输出类型中选择一种。
- **导出路径**(可选):更改输出文件的输出目录。如果留空,输出目录将与读取 `.notebook` 文件的目录相同。
- **导出名称**(可选):更改输出文件名。如果留空,输出名称将与输入的 `.notebook` 文件相同。
- **输出名称扩展**:布尔标志,用于在导出名称后追加 "_`Output Type`"。如果留空或回答错误,将采用默认值(y, yes)。
任何导出的文件都将以相应的 ".`Output Type Extension`" 结尾。
**使用示例**
```
(.venv) $ python src/main.py
'.notebook' file path: ./tests/01-30-26 11-14-16 AM.notebook
Export types: 'svg-fixed-pages', 'png-pages', 'pdf-svg-pages', 'pdf-png-pages', 'pdf-svg-merged', 'pdf-png-merged'.
Export Type: pdf-svg-merged
Export Path (opt): ./
Export Name (opt):
Output Name Extension. y/n (y): Y
(.venv) $
```
```
[dir] . # Current Directory
├─[dir] tests
| └─ [notebook] 01-30-26 11-14-16 AM.notebook
└─ [pdf] 01-30-26 11-14-16 AM_pdf-svg-merged.pdf
```
## 许可证
本项目基于 GNU General Public License v3.0 授权。有关详细信息,请参阅 [LICENSE](LICENSE) 文件。
| 操作系统 | 架构 | 说明 / 兼容性 |
|---|---|---|
| Debian Trixie | AMD64 | Debian 13 Trixie |
| Windows | AMD64 | Windows 10 |
| Windows 11 |
Linux (Debian/Ubuntu)
**安装与首次运行** 1. **安装系统依赖**:`python`、`pip`、`venv`、`tkinter`、`git` 以及 CairoSVG 库(`libcairo2`、`libffi-dev` 和 `python3-dev`)。需要 `sudo` 权限(除非依赖项已满足,若已满足请直接进行下一步)。 ``` sudo apt update sudo apt install python3 python3-pip python3-venv python3-tk git libcairo2 libffi-dev python3-dev ``` 2. **克隆源代码**:克隆本仓库并将工作目录切换到新的安装目录。 ``` git clone https://github.com/MikeCat2008/smartboard-notebook-exporter.git cd smartboard-notebook-exporter ``` 3. **Python 环境设置**:创建并激活名为 `.venv` 的 Python 虚拟环境。使用 `pip` 安装 `requirements.txt` 中列出的所有必需库。 ``` python3 -m venv .venv source .venv/bin/activate pip3 install -r requirements.txt ``` 4. **运行**:通过 `src/main.py` 运行命令行界面 (CLI),或通过 `src/gui.py` 运行图形用户界面 (GUI)。 ``` python3 src/main.py # CLI python3 src/gui.py # GUI ``` **后续运行:** 安装完成后若要再次启动程序,请确保你处于当初克隆源代码的同一文件夹中。然后,激活相同的虚拟环境 (`.venv`) 并运行你所需的用户界面。 ``` source .venv/bin/activate python3 src/main.py # CLI python3 src/gui.py # GUI ```Windows
**安装与首次运行:** 1. **安装系统依赖**:`python`、`git` 和 [GTK Runtime](https://github.com/tschoonj/GTK-for-Windows-Runtime-Environment-Installer)(用于 CairoSVG)。需要管理员模式权限(除非依赖项已满足,若已满足请直接进行下一步)。 ``` # 在 terminal 中以 Administrator 身份运行此命令 winget install python Git.Git tschoonj.GTKForWindows exit ``` 2. **克隆源代码**:克隆本仓库并将工作目录切换到新的安装目录。 ``` git clone https://github.com/MikeCat2008/smartboard-notebook-exporter.git cd smartboard-notebook-exporter ``` 3. **Python 环境设置**:创建并激活名为 `.venv` 的 Python 虚拟环境。使用 `pip` 安装 `requirements.txt` 中列出的所有必需库。 ``` python -m venv .venv .venv\Scripts\activate pip install -r requirements.txt ``` 4. **运行**:通过 `src/main.py` 运行命令行界面 (CLI),或通过 `src/gui.py` 运行图形用户界面 (GUI)。 ``` python src\main.py # CLI python src\gui.py # GUI ``` **后续运行:** 安装完成后若要再次启动程序,请确保你处于当初克隆源代码的同一文件夹中。然后,激活相同的虚拟环境 (`.venv`) 并运行你所需的用户界面。 ``` .venv\Scripts\activate python src\main.py # CLI python src\gui.py # GUI ```标签:PDF, Python, SVG, 文件格式转换, 文档工具, 无后门, 漏洞挖掘, 逆向工具