Подробное руководство: преобразование HTML в PDF на Apple Silicon с помощью wkhtmltopdf

С переходом на чипы Apple Silicon в устройствах Mac разработчики часто сталкиваются с проблемами при попытке конвертировать HTML-документы в PDF с помощью популярного инструмента wkhtmltopdf. В этой статье мы рассмотрим различные методы преодоления этого препятствия и предоставим примеры кода, которые помогут вам добиться преобразования HTML в PDF на компьютерах Apple Silicon.

Метод 1: Эмуляция с помощью Rosetta 2
Самый простой способ использовать wkhtmltopdf в Apple Silicon — эмулировать приложение с помощью Rosetta 2. Выполните следующие действия:

  1. Установите Rosetta 2 (если она еще не установлена), выполнив в терминале следующую команду:

    softwareupdate --install-rosetta
  2. Загрузите версию wkhtmltopdf x86_64 для macOS и установите ее.

  3. Откройте терминал и выполните следующую команду для преобразования HTML в PDF:

    arch -x86_64 /path/to/wkhtmltopdf --output /path/to/output.pdf /path/to/input.html

Метод 2: встроенная сборка wkhtmltopdf для Apple Silicon
Если вы предпочитаете использовать встроенную сборку wkhtmltopdf для Apple Silicon, выполните следующие действия:

  1. Установите Homebrew (если он еще не установлен), выполнив в терминале следующую команду:

    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  2. Установите зависимости, необходимые для сборки wkhtmltopdf:

    brew install pkg-config qt cmake
  3. Клонируйте репозиторий wkhtmltopdf и перейдите в каталог:

    git clone https://github.com/wkhtmltopdf/wkhtmltopdf.git
    cd wkhtmltopdf
  4. Настройте и соберите проект:

    mkdir build && cd build
    cmake ..
    make
  5. Установите встроенный двоичный файл:

    make install

Метод 3: использование Docker
Другой подход — использовать Docker для запуска wkhtmltopdf на Apple Silicon. Вот как:

  1. Установите Docker Desktop для Apple Silicon с официального сайта Docker.

  2. Создайте Dockerfile со следующим содержимым:

    FROM debian:stable-slim
    RUN apt-get update && apt-get install -y wkhtmltopdf
    CMD ["wkhtmltopdf"]
  3. Создайте образ Docker:

    docker build -t wkhtmltopdf-apple-silicon .
  4. Запустите контейнер и преобразуйте HTML в PDF:

    docker run -v /path/to/input:/input -v /path/to/output:/output wkhtmltopdf-apple-silicon /input/input.html /output/output.pdf

В этой статье мы рассмотрели три различных метода преобразования HTML в PDF с помощью wkhtmltopdf на устройствах Apple Silicon. Вы можете выбрать между эмуляцией версии x86_64 с помощью Rosetta 2, созданием собственной версии Apple Silicon или использованием Docker. Каждый метод предлагает жизнеспособное решение, и вы можете выбрать тот, который лучше всего соответствует вашим требованиям. Приятного кодирования!