С переходом на чипы Apple Silicon в устройствах Mac разработчики часто сталкиваются с проблемами при попытке конвертировать HTML-документы в PDF с помощью популярного инструмента wkhtmltopdf. В этой статье мы рассмотрим различные методы преодоления этого препятствия и предоставим примеры кода, которые помогут вам добиться преобразования HTML в PDF на компьютерах Apple Silicon.
Метод 1: Эмуляция с помощью Rosetta 2
Самый простой способ использовать wkhtmltopdf в Apple Silicon — эмулировать приложение с помощью Rosetta 2. Выполните следующие действия:
-
Установите Rosetta 2 (если она еще не установлена), выполнив в терминале следующую команду:
softwareupdate --install-rosetta
-
Загрузите версию wkhtmltopdf x86_64 для macOS и установите ее.
-
Откройте терминал и выполните следующую команду для преобразования HTML в PDF:
arch -x86_64 /path/to/wkhtmltopdf --output /path/to/output.pdf /path/to/input.html
Метод 2: встроенная сборка wkhtmltopdf для Apple Silicon
Если вы предпочитаете использовать встроенную сборку wkhtmltopdf для Apple Silicon, выполните следующие действия:
-
Установите Homebrew (если он еще не установлен), выполнив в терминале следующую команду:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
-
Установите зависимости, необходимые для сборки wkhtmltopdf:
brew install pkg-config qt cmake
-
Клонируйте репозиторий wkhtmltopdf и перейдите в каталог:
git clone https://github.com/wkhtmltopdf/wkhtmltopdf.git cd wkhtmltopdf
-
Настройте и соберите проект:
mkdir build && cd build cmake .. make
-
Установите встроенный двоичный файл:
make install
Метод 3: использование Docker
Другой подход — использовать Docker для запуска wkhtmltopdf на Apple Silicon. Вот как:
-
Установите Docker Desktop для Apple Silicon с официального сайта Docker.
-
Создайте Dockerfile со следующим содержимым:
FROM debian:stable-slim RUN apt-get update && apt-get install -y wkhtmltopdf CMD ["wkhtmltopdf"]
-
Создайте образ Docker:
docker build -t wkhtmltopdf-apple-silicon .
-
Запустите контейнер и преобразуйте 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. Каждый метод предлагает жизнеспособное решение, и вы можете выбрать тот, который лучше всего соответствует вашим требованиям. Приятного кодирования!