Я пытаюсь использовать unoconv для преобразования xlsx. Когда я запускаю его на хост-машине, он создает PDF-файл на 54 страницах, что правильно. Когда я запускаю его внутри контейнера Docker, он создает 83-страничный PDF-файл, в основном разбивая некоторые столбцы Я гарантировал, что версии unoconv, libreoffice и python одинаковы в обеих средах. Вот конфиг:
Хост-машина
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04.4 LTS
Release: 18.04
Codename: bionic
$ libreoffice --version
LibreOffice 6.0.7.3 00m0(Build:3)
$ unoconv --version
unoconv 0.7
Written by Dag Wieers <dag@wieers.com>
Homepage at http://dag.wieers.com/home-made/unoconv/
platform posix/linux
python 3.6.9 (default, Nov 7 2019, 10:44:02)
[GCC 8.3.0]
LibreOffice 6.0.7.3
$ UNO_PATH=/usr/lib/libreoffice unoconv -vvv -f pdf -o test5.pdf {file_path}
Verbosity set to level 3
Using office base path: /usr/lib/libreoffice
Using office binary path: /usr/lib/libreoffice/program
DEBUG: Connection type: socket,host=127.0.0.1,port=2002,tcpNoDelay=1;urp;StarOffice.ComponentContext
Input file: {file_path)
Selected output format: Portable Document Format [.pdf]
Selected office filter: calc_pdf_Export
Used doctype: spreadsheet
Output file: file:///home/ravi/test5.pdf
$ qpdf --show-npages test5.pdf
54
Docker Контейнер
root@938b1dbdc4cd:/code# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04.3 LTS
Release: 18.04
Codename: bionic
root@938b1dbdc4cd:/code# libreoffice --version
LibreOffice 6.0.7.3 00m0(Build:3)
root@938b1dbdc4cd:/code# unoconv --version
unoconv 0.7
Written by Dag Wieers <dag@wieers.com>
Homepage at http://dag.wieers.com/home-made/unoconv/
platform posix/linux
python 3.6.9 (default, Nov 7 2019, 10:44:02)
[GCC 8.3.0]
LibreOffice 6.0.7.3
root@938b1dbdc4cd:/code# UNO_PATH=/usr/lib/libreoffice unoconv -vvv -f pdf -o test5.pdf {file_path}
Verbosity set to level 3
Using office base path: /usr/lib/libreoffice
Using office binary path: /usr/lib/libreoffice/program
DEBUG: Connection type: socket,host=127.0.0.1,port=2002,tcpNoDelay=1;urp;StarOffice.ComponentContext
DEBUG: Existing listener not found.
DEBUG: Launching our own listener using /usr/lib/libreoffice/program/soffice.bin.
LibreOffice listener successfully started. (pid=1260)
Input file: {file_path}
func=xmlSecCheckVersionExt:file=xmlsec.c:line=188:obj=unknown:subj=unknown:error=19:invalid version:mode=abi compatible;expected minor version=2;real minor version=2;expected subminor version=25;real subminor version=26
Selected output format: Portable Document Format [.pdf]
Selected office filter: calc_pdf_Export
Used doctype: spreadsheet
Output file: file:///code/test5.pdf
DEBUG: Terminating LibreOffice instance.
DEBUG: Waiting for LibreOffice instance to exit.
root@938b1dbdc4cd:/code# qpdf --show-npages test5.pdf
83
Также, когда я используйте openoffice вместо libreoffice, обе команды создают файлы по 100 страниц. Файлы совпадают, но они не анализируются должным образом, поэтому мне нужно использовать libreoffice. Пожалуйста, дайте мне знать, есть ли другие зависимости, которые мне не хватает, что у меня могут быть разные версии.
Я должен также добавить, чтобы убедиться, что я работаю на том же файле, я копирую файл из Docker контейнер для размещения перед запуском.