Я пытаюсь использовать команду wkhtmltopdf для создания и преобразования html-страниц в pdf. Тем не менее, я сталкиваюсь с ошибками, вроде той, что показана ниже, при попытке использовать wkhtmltopdf через оболочку или скрипт Python:
Creating foo.pdf … ~/bin/wkhtmltox/bin/wkhtmltopdf: error while loading shared libraries: libXrender.so.1: cannot open shared object file: No such file or directory Error: foo.pdf not found. (Создание foo.pdf … ~/bin/wkhtmltox/bin/wkhtmltopdf: Ошибка при загрузке совместно используемых библиотек: libXrender.so.1: невозможно открыть совместно используемый фал: Отсутствует данный файл или директория Ошибка: foo.pdf не найден )
Как исправить эту проблему, не устанавливая xserver на моем сервере Ubuntu или Debian?
Вы можете найти недостающие библиотеки, используя команду ldd:
$ ldd /path/to/wkhtmltopdf
Примеры возможных выводов данных:
linux-vdso.so.1 => (0x00007fffdd3c6000) libXrender.so.1 => /usr/lib/x86_64-linux-gnu/libXrender.so.1 (0x00007f64cd4bd000) libfontconfig.so.1 => /usr/lib/x86_64-linux-gnu/libfontconfig.so.1 (0x00007f64cd27a000) libfreetype.so.6 => /usr/lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007f64ccfcf000) libXext.so.6 => /usr/lib/x86_64-linux-gnu/libXext.so.6 (0x00007f64ccdbd000) libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007f64cca83000) libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f64cc868000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f64cc664000) librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f64cc45c000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f64cc23e000) libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f64cbebc000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f64cbbb3000) libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f64cb99c000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f64cb5d3000) /lib64/ld-linux-x86-64.so.2 (0x00005564cb080000) libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007f64cb3aa000) libpng12.so.0 => /lib/x86_64-linux-gnu/libpng12.so.0 (0x00007f64cb184000) libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f64caf62000) libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007f64cad5d000) libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f64cab57000)
Теперь вы можете искать недостающие библиотеки, используя:
$ apt-cache search libXrender
В моем случае, недостающие библиотеки были следующими:
- libXrender: X Rendering Extension клиентская библиотека
- libfontconfig1: generic font configuration библиотека – процесс работы
Исправление ошибок при загрузке совместно используемых библиотек на Ubuntu/Debian Linux
Теперь, для решения этой проблемы, вооружившись новой информацией, мне нужно использовать следующие apt-get command или apt command команды для установки libxrender1 и libfontconfig1:
$ sudo apt-get install libfontconfig1 libxrender1
Или
$ sudo apt install libfontconfig1 libxrender1
Если вы используете какой-либо другой дистрибутив Linux, вам необходимо выполнить поиск, как описано выше, и установить отсутствующие библиотеки.
Перевод: Анна Давыдова
Источник: cyberciti.biz
Это интересно: