2012-11-29 7 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에서 C.pdf로 가져온 페이지가 아니라 B.pdf 문서에 여전히 링크됩니다. 이 문제에 대한 해결책은 "iText in Action - Second Edition"7 장에서 찾을 수 있습니다. 아래에서는 해당 Java 및 C# 예제에 대한 링크를 제공합니다.

자바 : 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 **를 참조하십시오 ... –

관련 문제