mindoc-org / mindoc

Golang实现的基于beego框架的接口在线文档管理系统
https://mindoc.com.cn/docs/mindochelp
Apache License 2.0
7.35k stars 1.91k forks source link

mindoc导出问题 #807

Open lovebetterworld opened 2 years ago

lovebetterworld commented 2 years ago

请按照一下格式提交issue,谢谢!

  1. 你当前使用的是哪个版本的 MinDoc(godoc_linux_amd64 version)?

registry.cn-hangzhou.aliyuncs.com/mindoc-org/mindoc:v2.1

  1. 你当前使用的是什么操作系统?

Centos7

  1. 你是如何操作的?

Docker-compose方式部署好mindoc,宿主机安装calibre。

宿主机测试转换,是可以成功的。

  1. 你期望得到什么结果?

成功导出word或者pdf

  1. 当前遇到的是什么结果?

转换WORD文档失败:exit status 1 2022/07/28 17:17:49.540 [E] [BookResult.go:498] 转换文件错误:开发文档 -> exit status 1

lovebetterworld commented 2 years ago

哎呦我去啊,自己解决了,自己来附上解决办法,真绝望。

docker-compose里面,把calibre的也挂载出去。 容器里面,calibre是安装在/opt下面的,你也可以在宿主机安装在/opt下面,然后配置环境变量。

配置环境变量: vi /etc/profile ,添加如下两行,然后保存即可。 PATH=$PATH:/opt/calibre export PATH

source /etc/profile

然后,docker-compose.yml中,挂载目录。- /opt/calibre:/opt/calibre

完整docker-compose.yml如下: version: '3' services: mindoc: image: 'registry.cn-hangzhou.aliyuncs.com/mindoc-org/mindoc:v2.1' container_name: mindoc volumes:

启动,测试成功。

aisuhua commented 2 years ago

mindoc:v2.1 同样遇到这个问题

aisuhua commented 2 years ago

@lovebetterworld 是不兼容 calibre 新版本的问题, Dockerfile 构建镜像时会一直使用最新版本的 calibre, https://github.com/mindoc-org/mindoc/blob/5a9d09734476a035c586c4cd501f790be69249c6/Dockerfile#L109

但是目前不兼容最新版 6,可回滚到 5 版本,具体操作如下: 首先进入容器

docker exec -it mindoc bash

然后重装 calibre 为低版本

mv /opt/calibre /opt/calibre-bak
mkdir /opt/calibre
wget https://download.calibre-ebook.com/5.44.0/calibre-5.44.0-x86_64.txz
tar xJof calibre-5.44.0-x86_64.txz -C /opt/calibre
rm  -f calibre-5.44.0-x86_64.txz

或者重新修改 Dockerfile,重新构建镜像。

lovebetterworld commented 2 years ago

@lovebetterworld 是不兼容 calibre 新版本的问题, Dockerfile 构建镜像时会一直使用最新版本的 calibre,

https://github.com/mindoc-org/mindoc/blob/5a9d09734476a035c586c4cd501f790be69249c6/Dockerfile#L109

但是目前不兼容最新版 6,可回滚到 5 版本,具体操作如下: 首先进入容器

docker exec -it mindoc bash

然后重装 calibre 为低版本

mv /opt/calibre /opt/calibre-bak
mkdir /opt/calibre
wget https://download.calibre-ebook.com/5.44.0/calibre-5.44.0-x86_64.txz
tar xJof calibre-5.44.0-x86_64.txz -C /opt/calibre
rm  -f calibre-5.44.0-x86_64.txz

或者重新修改 Dockerfile,重新构建镜像。

嗯,我也解决了,修改了挂载宿主机得calibre版本就好了。

DataSttructure commented 2 years ago

@lovebetterworld 是不兼容 calibre 新版本的问题, Dockerfile 构建镜像时会一直使用最新版本的 calibre,

https://github.com/mindoc-org/mindoc/blob/5a9d09734476a035c586c4cd501f790be69249c6/Dockerfile#L109

但是目前不兼容最新版 6,可回滚到 5 版本,具体操作如下: 首先进入容器

docker exec -it mindoc bash

然后重装 calibre 为低版本

mv /opt/calibre /opt/calibre-bak
mkdir /opt/calibre
wget https://download.calibre-ebook.com/5.44.0/calibre-5.44.0-x86_64.txz
tar xJof calibre-5.44.0-x86_64.txz -C /opt/calibre
rm  -f calibre-5.44.0-x86_64.txz

或者重新修改 Dockerfile,重新构建镜像。

Great answer, but I'm still getting PDF export error when I compile using the regular method (NOT DOCKER).

[ebook-convert /tmp/51cc8fcb9a92073540676b5db76141ce/mindoc/output/content.epub /tmp/51cc8fcb9a92073540676b5db76141ce/mindoc/output/output/book.pdf --paper-size a4 --pdf-default-font-size 14 --pdf-header-template <p style='color:#8E8E8E;font-size:12px;'>_SECTION_</p> --pdf-footer-template <p style='color:#8E8E8E;font-size:12px;'>本文档使用 <a href='https://www.iminho.me' style='text-decoration:none;color:#1abc9c;font-weight:bold;'>MinDoc</a> 构建 <span style='float:right'>- _PAGENUM_ -</span></p> --pdf-page-margin-left 72 --pdf-page-margin-top 72 --pdf-page-margin-right 72 --pdf-page-margin-bottom 72]
正在转换 PDF 文件 /tmp/51cc8fcb9a92073540676b5db76141ce/mindoc/output/content.epub
转换PDF文档失败:exit status 1