2011-10-07 144 views
3

我有两个PDF的文件。两者具有相同的几何形状和相同数量的页面。我想合并它们,例如一个文件是背景,一个文件是前景。我试着用PDFTK背景选项:合并两个PDF文件 - 一个作为背景,一个作为前景

pdftk bg.pdf background fg.pdf output out.pdf 

但PDFTK只是使用bg.pdf的第一页作为所有页面的水印。我想用Java(例如iText库)或bash命令来完成它。有什么建议么?

回答

4

你需要使用PDFTK的最新版本

PDFTK 1.43PDFTK 1.44

这些构建有一个新的交换机multistamp

http://www.pdflabs.com/docs/pdftk-man-page/#dest-op-multistamp

之一

相同作为印章操作,但将印章PDF的每一页应用到输入PDF的相应页面。如果输入PDF的页面数多于印记PDF,则在输入PDF中的这些剩余页面上重复最终的戳记页面。

否则,如果你是无法建立PDFTK 1.43或来源1.44,您可以使用

全文变压器

http://sourceforge.net/projects/pdf-transformer/

java -jar ./pdf-transformer-0.4.0.jar <INPUT_FILE_NAME1> <INPUT_FILE_NAME2> <OUTPUT_FILE_NAME> merge -j 

叠加两个pdf文件

+2

不知何故,我错过了你的评论。同时我用小[Java的程序]解决它(https://github.com/boldt/Okular2PDF/blob/master/src/main/java/de/dennisboldt/api/MergePDFs.java)。 – Dennis

1

可以与iText的做到这一点,iText的采用4“层”以将它的内容层1(overContent)和4(underContent)由程序员访问通过询问PdfWriter对他们来说,层2和3中使用由iText内部。 所以,你可以用undercontent层的背景和对overContent你的其他PDF合并的PDF。 我希望这篇文章对你有帮助,如果你有任何其他问题只是射击:)

+1

由于我已经在Dingos评论中写过,我[已经用iText PdfStamper解决了它](https://github.com/boldt/Okular2PDF/blob/master/src/main/java/de/dennisboldt/api/MergePDFs.java ) 一个月前。 – Dennis