2013-08-21 36 views
0

我需要做的是以编程方式或从CLI顺时针或逆时针旋转PDF。你如何以编程方式 - 或从CLI - 旋转PDF?

我花了相当多的时间研究并试图用GhostScript旋转PDF(因为GS已经安装了其他原因)无济于事,似乎没有任何旋转的结果。

我已经研究过使用pdftk,但它需要java库,我宁愿没有在系统上安装java。

我们甚至已经考虑过自己修改PDF文件,而且我们已经取得了一些成功,但是我们还没有遇到一种适用于所有PDF的可靠方法。

因此,我的第一选择是使用系统上的现有资源实现这一目标。 我的#2优先选择是尽可能对现有系统进行一些修改来实现此目的。

有问题的服务器使用Linux(OpenSuse 11)和PHP 5.2,我安装了Ghostscript 9.0。

任何意见将不胜感激。

回答

1

可以使用pdfpages乳胶包

\documentclass{article} 
\usepackage{pdfpages} 

\begin{document} 
    \includepdf[angle=45]{document.pdf} 
\end{document} 

的乳胶文档上方,经由pdflatex编译,产生一个文件旋转45度。

也有工具(pdfpages的包装),如pdfjam,可以直接从命令行中使用:

$ pdfjam --suffix rotated45 --angle 45 --fitpaper true document.pdf 
+0

我很难让所有的依赖项排队试试这个。有没有一个很好的存储库,我可以指望安装它? –

+0

我用'texlive-latex'中的zypper来安装latex,然后为pdfjam安装一个RPM。这是现在从CLI旋转PDF。谢谢! –

1

有一种方法与ImageMagick做到这一点,如果这是提供给您。

实施例:

$ convert originalfile.pdf -rotate <cw_angle_degrees> newfile.pdf

但是请注意,既然这是一个基于光栅的旋转,就会有(通常)在文件大小质量,增加的显着损失。

+0

谢谢。是的,ImageMagick安装在这个应用程序中。但是,我确实想避免光栅化旋转。 –

+0

这确实有效。但不幸的是,质量是无法使用的。 –

0

你还没有说过你是如何用Ghostscript来做到这一点的,但是如果你想使用pdfwrite设备,你需要设置/ AutoRotatePages =/None或者它会旋转最后一页,这样主要任何真实的文字是水平的。

+0

我不想进入所有没有工作的排列组合,我希望有人看到GS旋转PDF会发出响声。但这是许多没有达到任何效果的尝试之一: gs -sDEVICE = pdfwrite -sOutputFile =“/ tmp/output.pdf”-dNOPAUSE -dAutoRotatePages =/None -c“<> setpagedevice”-f“/tmp/input.pdf”' –

+0

也试过了: 'gs -sDEVICE = pdfwrite -sOutputFile =“/ tmp/output。pdf“-dNOPAUSE -dAutoRotatePages = /无-c”90 rotate setpagedevice“-f”/tmp/input.pdf“'以及:'gs -sDEVICE = pdfwrite -sOutputFile =”/ tmp/output.pdf“-dNOPAUSE -dAutoRotatePages = /无-c“90 rotate”-f“/tmp/input.pdf”'......以命名一对夫妇 –

+0

/方向是指媒体的方向,而不是页面上的标记。需要旋转当前变换矩阵<> setpagedevice可能工作,虽然我还没有尝试过。显然我需要一个示例文件来测试它 – KenS

相关问题