2012-03-20 54 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

相关问题