2012-03-20 55 views
0

我有100行的postscript文件。我試圖在ghostscript的幫助下將2個pdf合併成一個。我想要做的是,無論是PDF合併成一個,比下面的方式運用我的PostScript代碼:如何執行postscript文件到特定的頁碼?

1)PostScript文件的前50行應僅第1頁上應用生成的PDF

2)在生成的pdf的第二頁上剩餘50行。

我用下面的代碼來做到這一點:

gs -q -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sOutputFile=output.pdf test.ps pdf_1.pdf pdf_2.pdf; 

我已經試過後記showpage選項,但是在插入生成的輸出PDF空白頁,這不是我的要求。

任何人都知道我該怎麼做?

回答

0

可以在多個迭代打破PS碼。只需使用PS代碼的一部分創建一個PDF,然後使用PS的剩餘部分生成另一個PDF。做完這些之後,您可以在ghost腳本的幫助下合併這兩個PDF並獲得期望輸出。

我知道這不是一個明智的解決方案,但是現在您可以繼續前進。

感謝

+0

不是一個好主意,但是這有助於我一段時間.. – Smit 2012-04-18 18:47:01

3

showpage不是Ghostscript'選項'它的PostScript操作符。

因爲你的輸入文件是PDF,這是一個不平凡的任務。 PDF解釋器將爲輸入PDF文件中的每個頁面執行showpage的系統定義,覆蓋您放入PostScript的任何內容。

沒有嘗試這一點,我相信你需要做的是創建一個EndPage過程,根據頁數(這是一種PostScript編程技術)採取不同的操作。

如:

/DoPage1 { 
    %% Your code goes in here 
} def 
/DoPage2 { 
    %% Your code goes in here 
} 
<< 
/EndPage { 
    2 lt{ 
     1 eq { 
      DoPage1 
     }{ 
      DoPage2 
     } ifelse 
    }{ 
     pop 
    } ifelse 
} 
>> setpagedevice 

你將不得不之前運行這段代碼2個PDF文件,如:

gs .... setup.ps file1.pdf file2.pdf

+0

好吧,似乎它適用於給定的例子..現在說我有動態生成的pdf和不同的頁碼。在那種情況下應該是後記的代碼? 我非常喜歡後記,並且對此不太瞭解。 – Smit 2012-03-20 09:29:57

+2

我不知道。如果您的頁面數量可變,您如何知道將哪一組PostScript附加到哪個頁面? PostScript是一種編程語言,所以當你知道你想要做什麼時,你可以編寫它。 – KenS 2012-03-21 08:34:22

2

您可以提供所有在單一命令ps的文件名,就在旁邊的每個PDF輸出文件名。這將生成那些具有PS代碼輸出的需求PDF,然後您可以根據使用任何PDF庫的要求合併它們。

+0

這對我很有用..但是pdf塊呢? – Smit 2012-05-22 17:14:06

相關問題