2012-11-29 5 views
1

Pardonnez-moi pour le mauvais anglais ..)) Il existe deux documents PDF. Les deux se composent de 197 pages. Le premier papier de 1-2 pages a des liens vers l'autre page (3-197) de ce document. Nous devons combiner ces deux documents en un seul document de 197 pages: • 1 - 2 pages - à partir du premier document (avec liens de travail, les références doivent être envoyées aux pages pertinentes du nouveau document fusionné); • 3-197 pages - à partir du deuxième document.iTextSharp: Combiner deux documents PDF en un

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; 

Par conséquent, les liens sont rompus. Montrez-leur comment conserver les liens. Merci pour l'aide !!!

Répondre

1

Vous avez un document A.pdf et un document B.pdf. Les liens dans le document A.pdf se réfèrent au document B.pdf. Vous voulez maintenant concaténer A.pdf avec B.pdf. Si cela est fait correctement, vous obtiendrez un document C.pdf et les liens seront conservés. Cela signifie que les liens importés du document A.pdf continueront à être liés au document B.pdf, PAS aux pages importées de B.pdf dans C.pdf. La solution à ce problème peut être trouvée dans le chapitre 7 de "iText in Action - Deuxième édition". Ci-dessous, je vous donne le lien vers l'exemple Java et C# correspondant.

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

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

La méthode clé est MakeRemoteNamedDestinationsLocal. Cela changera les liens distants qui pointaient initialement de A.pdf à B.pdf en liens locaux à l'intérieur de C.pdf. C'est plutôt un problème de spécialiste. Si vous ne parvenez pas à utiliser ces exemples, il sera difficile d'expliquer ce qu'il faut faire sur un forum tel que Stackoverflow.

+1

simplement la variable est appelée écrivain, elle contient une copie PDF ... – mkl

+0

Merci pour l'aide! –

+0

Les liens dans le document A.pdf font référence au document ** A.pdf ** ... –