Как вы программно - или из CLI - вращаете PDF?
Что мне нужно сделать, это повернуть PDF по часовой стрелке или против часовой стрелки либо программно, либо из интерфейса командной строки.
Я потратил значительное время на исследования и попытки вращать PDF-файлы с помощью GhostScript (поскольку GS уже установлен по другим причинам), но безрезультатно, ничто не приводит к какому-либо повороту.
Я рассмотрел использование pdftk, но для этого требуются библиотеки Java, и я бы не хотел, чтобы в системе была установлена Java.
Мы даже смотрели на изменение файла PDF сами, и у нас был некоторый успех в этом, но мы не нашли надежный метод, который работает для всех PDF-файлов.
Поэтому я предпочел бы достичь этого с помощью имеющихся ресурсов системы. Мое предпочтение № 2 было бы сделать небольшую модификацию существующей системы, насколько это возможно для достижения этой цели.
Рассматриваемый сервер использует Linux (OpenSuse 11) с PHP 5.2, и у меня установлен Ghostscript 9.0.
Любые советы будут высоко ценится.
3 ответа
Вы можете использовать пакет LaTeX pdfpages
\documentclass{article}
\usepackage{pdfpages}
\begin{document}
\includepdf[angle=45]{document.pdf}
\end{document}
Приведенный выше документ LaTeX, скомпилированный с помощью pdflatex, создает документ, повернутый на 45 градусов.
Существуют также инструменты (оболочки pdfpages), такие как pdfjam, которые можно использовать непосредственно из командной строки:
$ pdfjam --suffix rotated45 --angle 45 --fitpaper true document.pdf
Существует способ сделать это с помощью ImageMagick, если он вам доступен.
Пример:
$ convert originalfile.pdf -rotate <cw_angle_degrees> newfile.pdf
Однако обратите внимание, что, поскольку это ротация на основе растра, (как правило) будет происходить заметная потеря качества и увеличение размера файла.
Вы не сказали, как вы пытаетесь это сделать с помощью Ghostscript, но если вы хотите использовать устройство pdfwrite, вам нужно установить /AutoRotatePages=/None, иначе он будет вращать последнюю страницу, так что мажоритар любого реального текста будет горизонтальный.