2013-08-21 38 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

相關問題