Обрезка документа PDF в Linux из PHP
Доброго времени друзья! Недавно я столкнулся с задачей, реализовать обрезку PDF документа по краям в проекте написанном на PHP. Поиск решений, ничего толкового не дал, как ни странно(в случае работы с PDF из PHP дела обстоят именно так, использование библиотек типа Fpdi тоже не решает задачу, или решает некорректно). В итоге, было принято решение, выполнить задачу используя такую связку: PHP -> внешняя программа PDFCrop под Linux (решение нашлось для CentOS 7, AlmaLinux и Ununtu).
Установка PDFCrop
Для работы PDFCrop в Linux, нужно установить следующие пакеты:
Для CentOS 7, AlmaLinux — texlive-pdftex. Устанавливаем выполнив команду в консоли:
sudo yum -y install texlive-pdftex |
Далее скачиваем саму утилиту PDFCrop, из архива берем файл pdfcrop.pl (скрипт написанный на PERL), переименовываем его в pdfcrop, копируем в /usr/bin/pdfcrop и устанавливаем права на выполнение 755.
Для Ununtu достаточно установить только — texlive-extra-utils, утилита PDFCrop будет установлена автоматически(идет в пакете). Устанавливаем выполнив команду в консоли:
sudo apt-get install texlive-extra-utils |
Вызов из PHP
В скрипт написанном на PHP, вызываем PDFCrop используя команду exec(), код будет выглядеть так:
exec("/usr/bin/pdfcrop --margins '-3 -3 -6 -1' ./input.pdf ./output.pdf"); |
Документ input.pdf это исходник, а output.pdf соответственно результат. Значения атрибута —margins ‘-3 -3 -6 -1’ это то на сколько нужно обрезать документ со всех(в дюймах).

Автор:






