一個更常用的情況是合併單個頁面的背景PDF文件使用一個多頁面的源代碼的PDF文件。例如,背景pdf僅包含頁眉和頁腳。源PDF已經以上下邊距作爲本場景中背景pdf模板的頁眉和頁腳的佔位符。如果你正在尋找這個 - 像我一樣 - 你會在這裏絆倒這個線程,你可以應用以下方法:
tplFile$ = "c:/0/background.pdf"
srcFile$ = "c:/0/source1.pdf"
destFile$ = "c:/0/newMergedDest.pdf"
declare Document destDoc!
declare PdfWriter destWriter!
declare PdfReader mainDocReader!
declare PdfReader singlePageBackgroundReader!
declare PdfImportedPage mainDocPage!
declare PdfImportedPage backgroundPage!
declare PdfContentByte dcb!
declare PdfContentByte ucb!
destDoc! = new Document()
destWriter! = PdfWriter.getInstance(destDoc!, new FileOutputStream(destFile$))
destDoc!.open()
dcb! = destWriter!.getDirectContent()
ucb! = destWriter!.getDirectContentUnder()
mainDocReader! = new PdfReader(srcFile$)
singlePageBackgroundReader! = new PdfReader(tplFile$)
backgroundPage! = destWriter!.getImportedPage(singlePageBackgroundReader!,1)
for i=1 to mainDocReader!.getNumberOfPages()
destDoc!.newPage()
mainDocPage! = destWriter!.getImportedPage(mainDocReader!,i)
dcb!.addTemplate(mainDocPage!,0,0)
ucb!.addTemplate(backgroundPage!,0,0)
next i
destDoc!.close()
這似乎是推測性的。你能描述一下代碼的作用,以及它如何適用於我的具體問題?它的寫法相當不透明。 – 2010-05-06 22:41:56
該程序打開一個PDF文件,並生成一個新的PDF文件放置在每個新的頁面(比如說)從原來的兩頁,旋轉和/或縮放。看到第130行。 我曾經寫過類似的程序,用於重新格式化pdf文件,以便查看或打印。在我看來,這與你的需要有些相關。 – leonbloy 2010-05-06 22:55:03
代碼看起來像是在頁面大小的塊中添加數據。我想只添加頁面的一部分。 – 2010-05-06 23:53:25