2012-11-29 103 views
1

原諒我的英文不好..)) 有兩個PDF文檔。兩者共197頁。 1-2頁的第一篇論文鏈接到本文檔的其他(3-197)頁面。 我們需要將這兩個文檔合併爲一個197頁的文檔: •1-2頁 - 從第一個文檔(帶有工作鏈接,引用應發送到新合併文檔的相關頁面); •3-197頁 - 來自第二份文件。iTextSharp:將兩個PDF文檔合併爲一個

Doc:= New iTextSharp.text.Document(); 

ReaderDoc1:=New iTextSharp.text.pdf.PdfReader(FileName1); 

ReaderDoc2:=New iTextSharp.text.pdf.PdfReader(FileName2); 

FStream:=New System.IO.FileStream(OutFileName, System.IO.FileMode.CreateNew); 

Writer := New iTextSharp.text.pdf.PdfCopy(Doc, FStream); 

Doc.Open(); 

Writer.AddPage(Writer.GetImportedPage(ReaderDoc1,1)); 

Writer.AddPage(Writer.GetImportedPage(ReaderDoc1,2)); 

PageCount := ReaderDoc2.NumberOfPages; 

For f := 3 To PageCount Do 

Writer.AddPage(Writer.GetImportedPage(ReaderDoc2, f)); 

End For; 

因此,鏈接被破壞。告訴你如何保持鏈接工作。 感謝您的幫助!

回答

1

你有一個文件A.pdf和一個文件B.pdf。文件A.pdf中的鏈接指向文件B.pdf。現在你想連接A.pdf和B.pdf。如果正確完成,最終會得到一個C.pdf文件,並且鏈接將被保留。這意味着從文檔A.pdf導入的鏈接仍然會鏈接到文檔B.pdf,而不是從B.pdf導入到C.pdf的頁面。這個問題的解決方案可以在「iText in Action - Second Edition」的第7章中找到。下面我給你鏈接到相應的Java和C#示例。

的Java:http://itextpdf.com/examples/iia.php?id=133

C#:http://kuujinbo.info/iTextInAction2Ed/index.aspx?ch=Chapter07&ex=ConcatenateNamedDestinations

的關鍵方法是MakeRemoteNamedDestinationsLocal。這將把最初從A.pdf指向B.pdf的遠程鏈接變成C.pdf內的本地鏈接。 這是比較特殊的事情。如果您沒有成功使用這些示例,則很難解釋如何在諸如Stackoverflow之類的論壇上執行操作。

+1

只是變量被稱爲作家,它包含一個PdfCopy ... – mkl

+0

感謝您的幫助! –

+0

文檔A.pdf中的鏈接指的是文檔** A.pdf ** ... –

相關問題