ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

NocoBase 模板打印插件安装指南:商业插件激活、LibreOffice 与 Docker 环境配置

NocoBase 模板打印插件安装指南:商业插件激活、LibreOffice 与 Docker 环境配置 NocoBase 模板打印插件安装指南商业插件激活、LibreOffice 与 Docker 环境配置【免费下载链接】nocobaseNocoBase is an open-source AI no-code platform for building business systems fast. Instead of generating everything from scratch, AI works on top of production-proven infrastructure and a WYSIWYG no-code interface, so you get both speed and reliability.项目地址: https://gitcode.com/GitHub_Trending/no/nocobaseNocoBase 的模板打印插件支持使用 Word、Excel 和 PowerPoint 编辑模板文件.docx、.xlsx、.pptx通过占位符与逻辑结构动态生成业务文档并可输出 PDF广泛应用于报价单、发票、合同等场景。本文聚焦该插件的安装全流程先说明商业插件激活与升级的通用方式再重点讲解 PDF 生成所依赖的 LibreOffice 的安装方案最后结合仓库中的 Docker 入口脚本与 Compose 配置深入说明storage/scripts脚本机制、容器重启与安装校验等实战细节帮助你在一套 Docker 部署的 NocoBase 上完整跑通模板打印能力。一、安装插件商业插件激活模板打印插件属于 NocoBase 的商业插件安装与升级方式与普通开源插件不同需要先完成商业许可的激活。官方提供了专门的激活指南《商业插件激活指南》其中覆盖了以下关键环节许可获取商业插件需要购买许可证并获取对应的激活凭证激活操作在应用后台或通过配置完成许可证的绑定与激活版本升级商业插件随 NocoBase 主版本升级时需要同步更新并重新激活。完成激活后插件便出现在应用的可启用插件列表中。启用后即可在详情区块与表格区块中看到“模板打印”操作按钮具体启用方式可参考 模板打印配置在详情区块点击“配置操作”选择“模板打印”即可激活功能表格区块用法基本相同区别在于支持勾选多条记录批量打印最多 100 条且由于数据结构不同对象 vs 数组表格区块与详情区块的模板互不通用。提示不同版本/渠道获取的商业插件包名可能带有template-print字样如 action-template-print安装后请以应用后台「插件管理」中实际显示的插件名为准。二、安装 LibreOffice生成 PDF 的必备依赖模板打印支持直接输出.docx、.xlsx、.pptx以及PDF文件。其中生成 PDF 必须依赖 LibreOffice 进行文档转换因此这是「可选但按需必装」的环节——如果业务只需要 Word/Excel/PPT 文件可以跳过一旦需要 PDF 输出就必须确保运行 NocoBase 的环境服务器或容器中安装了 LibreOffice。2.1 非 Docker 环境非 Docker直接部署在服务器的情况下直接前往 LibreOffice 官网下载对应操作系统的安装包并完成安装即可。安装完成后确保libreoffice命令在 PATH 中可用NocoBase 服务在生成 PDF 时会调用该命令。2.2 Docker 环境利用storage/scripts自动执行脚本在 Docker 部署中不建议在构建镜像时写死 LibreOffice更推荐的做法是利用 NocoBase 容器启动时自动执行的storage/scripts目录机制在每次容器启动时检查并安装 LibreOffice。先在宿主机上创建脚本文件mkdir ./storage/scripts cd ./storage/scripts vim install-libreoffice.shinstall-libreoffice.sh的完整内容如下脚本会在容器启动时由 NocoBase 的入口脚本自动执行#!/bin/bash # Define variables INSTALL_DIR/opt/libreoffice24.8 DOWNLOAD_URLhttps://downloadarchive.documentfoundation.org/libreoffice/old/24.8.5.2/deb/x86_64/LibreOffice_24.8.5.2_Linux_x86-64_deb.tar.gz # Check if LibreOffice is already installed if [ -d $INSTALL_DIR ]; then echo LibreOffice is already installed, skipping installation. exit 0 fi # Update APT sources tee /etc/apt/sources.list /dev/null EOF deb http://mirrors.aliyun.com/debian/ bookworm main contrib non-free deb-src http://mirrors.aliyun.com/debian/ bookworm main contrib non-free deb http://mirrors.aliyun.com/debian-security/ bookworm-security main contrib non-free deb-src http://mirrors.aliyun.com/debian-security/ bookworm-security main contrib non-free deb http://mirrors.aliyun.com/debian/ bookworm-updates main contrib non-free deb-src http://mirrors.aliyun.com/debian/ bookworm-updates main contrib non-free deb http://mirrors.aliyun.com/debian/ bookworm-backports main contrib non-free deb-src http://mirrors.aliyun.com/debian/ bookworm-backports main contrib non-free EOF # Update APT and install dependencies apt-get update apt-get install -y \ libfreetype6 \ fontconfig \ libgssapi-krb5-2 \ libxml2 \ libnss3 \ libdbus-1-3 \ libcairo2 \ libxslt1.1 \ libglib2.0-0 \ libcups2 \ libx11-xcb1 \ fonts-liberation \ fonts-noto-cjk \ wget rm -rf /var/lib/apt/lists/* cd /app/nocobase/storage/scripts # Download and install LibreOffice if not already present if [ ! -d ./libreoffice ]; then rm -rf libreoffice.tar.gz wget --no-check-certificate -O libreoffice.tar.gz $DOWNLOAD_URL if [ $? -ne 0 ]; then echo Failed to download LibreOffice. exit 1 fi rm -rf libreoffice mkdir libreoffice tar -zxvf libreoffice.tar.gz -C ./libreoffice --strip-components1 if [ $? -ne 0 ]; then echo Failed to extract LibreOffice. exit 1 fi fi # Install LibreOffice dpkg -i libreoffice/DEBS/*.deb ln -s /opt/libreoffice24.8/program/soffice.bin /usr/bin/libreoffice libreoffice --version if [ $? -ne 0 ]; then echo Failed to install LibreOffice. exit 1 fi echo LibreOffice installation completed successfully.这段脚本有几个值得留意的设计点幂等性通过检查/opt/libreoffice24.8目录是否存在来决定是否跳过安装避免每次容器启动都重复下载下载与解压分离先wget下载 tar 包再解压到./libreoffice每步都有失败退出校验便于排查依赖预装安装的libfreetype6、fontconfig、libcairo2、libnss3、libcups2等是 LibreOffice 在无图形界面headless环境下正常运行所必需的动态库中文字体支持fonts-noto-cjk用于保证模板中的中文内容在转换为 PDF 时能够正确渲染不会出现乱码或豆腐块软链暴露命令ln -s /opt/libreoffice24.8/program/soffice.bin /usr/bin/libreoffice将 LibreOffice 的可执行文件链接为全局libreoffice命令NocoBase 打印服务据此调用镜像源适配脚本将 APT 源替换为阿里云镜像这是为了在国内网络环境下加速依赖下载如果你的网络环境不同可以替换为可访问的 Debian 源。2.3 脚本为何会被自动执行容器入口机制上述脚本能生效的关键在于 NocoBase 官方 Docker 镜像的入口脚本 docker-entrypoint.sh 中有一段「启动前自动执行 storage/scripts 下所有 shell 脚本」的逻辑对应文件第 146-152 行# run scripts in storage/scripts if [ -d /app/nocobase/storage/scripts ]; then for f in /app/nocobase/storage/scripts/*.sh; do [ -e $f ] || continue echo Running $f sh $f done fi也就是说只要把*.sh脚本放进容器的/app/nocobase/storage/scripts目录容器每次启动时都会在正式拉起 NocoBase 应用yarn start --quickstart之前按文件名顺序执行这些脚本。这也是「重启 app 容器即可触发安装」的底层原因——重启时入口脚本会重新扫描该目录并运行install-libreoffice.sh。而storage/scripts之所以能通过宿主机上的./storage/scripts直接访问是因为 Docker 部署默认将宿主机./storage目录挂载到容器内的/app/nocobase/storage。例如仓库中的 docker/app-sqlite/docker-compose.yml 所示volumes: - ./storage:/app/nocobase/storage因此你只需在宿主机Compose 项目目录下创建storage/scripts/install-libreoffice.sh并赋予可执行权限无需重新构建镜像重启容器后脚本即会在容器内生效。三、重启容器并校验安装结果3.1 重启 app 容器脚本编写完成后重启 app 容器使其在启动阶段执行安装脚本docker compose restart app # 查看日志 docker compose logs app执行docker compose logs app时可以在启动日志中看到入口脚本执行storage/scripts的痕迹例如Running /app/nocobase/storage/scripts/install-libreoffice.sh以及脚本末尾打印的LibreOffice installation completed successfully.。如果下载或安装失败脚本会以非零状态退出并在日志中留下对应错误信息便于定位是网络下载问题还是依赖缺失问题。3.2 校验 LibreOffice 是否安装成功进入容器直接检查libreoffice命令的版本$ docker compose exec app bash -c libreoffice --version LibreOffice 24.8.4.2 bb3cfa12c7b1bf994ecc5649a80400d06cd71002只要能正常输出版本号说明命令已可用、动态库依赖完整模板打印的 PDF 转换链路即可正常工作。四、安装完成后的验证路径插件与 LibreOffice 都就绪后建议按如下路径做一次端到端验证在详情区块通过「配置操作 → 模板打印」激活功能参见 模板打印配置在「模板配置」中新建模板填写模板名称、选择类型Word/Excel/PowerPoint、上传.docx/.xlsx/.pptx模板文件从字段列表复制占位符变量填入模板并保存回到详情页点击「模板打印」按钮分别验证生成原始格式文件与 PDF 文件。如果 PDF 生成报错可优先排查LibreOffice 是否安装libreoffice --version、中文字体是否缺失fonts-noto-cjk、容器内网络是否能访问下载地址。关于模板语法占位符、循环、条件输出、格式化器与渲染问题的详细说明可继续阅读 模板打印语法 与 模板打印常见问题。五、小结模板打印插件的安装可以拆成两个独立维度维度是否必需说明商业插件激活必需通过商业许可激活指南完成插件安装与升级启用后出现「模板打印」操作入口LibreOffice生成 PDF 时必需非 Docker 环境直接官网安装Docker 环境利用storage/scripts自动执行安装脚本重启容器后校验libreoffice --version借助 docker-entrypoint.sh 的 storage/scripts 机制与宿主机./storage卷挂载你可以在不重新构建镜像的前提下以「写脚本 重启容器」的方式为任何 Docker 部署的 NocoBase 实例补充 PDF 输出能力这也是该方案在运维层面最实用的价值所在。【免费下载链接】nocobaseNocoBase is an open-source AI no-code platform for building business systems fast. Instead of generating everything from scratch, AI works on top of production-proven infrastructure and a WYSIWYG no-code interface, so you get both speed and reliability.项目地址: https://gitcode.com/GitHub_Trending/no/nocobase创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表