Comment importer un signet de xml dans un pdf existant?

Je travaille actuellement sur des projets pdf (dotnet / c # [ Itextsharp pdf ]), je veux exporter et importer des signets d’un pdf à un autre pdf (les deux pdf ont le même contenu, la seule différence est avec signet / sans signet et l’autre est normal pdf et un autre pdf lié). L’exportation de signets au format XML fonctionne bien, mais je n’ai pas l’idée d’importer un signet exporté (xml) dans un autre fichier PDF. Est-ce que n’importe quel corps peut suggérer une solution?

Ici, je joins mon code.

ssortingng inputpdf = "D:\\chapter1.pdf"; ssortingng outputbookmark="D:\\chapter1Bookmark.xml"; PdfReader reader = new PdfReader(inputpdf); IList<Dictionary> bookmarks = SimpleBookmark.GetBookmark(reader); using (StreamWriter Sw = new StreamWriter(outputbookmark)) { SimpleBookmark.ExportToXML(bookmarks, Sw,"ISO8859-1", true); } reader.Close(); 

Mon fichier de sortie XML est

   Introduction Getting Started <Title>Printing a test page Accessing the novaPDF Printing Preferences – test the multiline bookmark detection option Creating PDF Files   

Mon fichier Pdf disponible dans

 http://www.novapdf.com/uploads/novapdf_en/media_items/pdf-example-bookmarks.original.pdf 

Vous utilisez actuellement la méthode exportToXml () (voir aussi exportToXml () ; nous avons actuellement la documentation de l’API à deux endroits différents).

Pour une raison quelconque, vous n’avez pas trouvé la méthode importFromXML () (voir aussi importFromXML () ). Si vous avez un fichier XML contenant des signets, par exemple:

   Introduction Getting Started Printing a test page Accessing the novaPDF Printing Preferences – test the multiline bookmark detection option Creating PDF Files   

Vous pouvez lire ce fichier XML (sous forme de stream d’entrée ou à l’aide d’un lecteur) et la méthode importFromXML() renverra un object List> . Vous pouvez utiliser cet object pour append les signets à un document PDF à l’aide de la méthode setOutlines() . Voir par exemple l’exemple BookmarkedTimeTable . Ou jetez un oeil à la réponse à cette question: Fusionner des fichiers PDF et append un signet avec iText en Java

Ces exemples sont (bien sûr) en Java, mais si vous avez besoin de la version Java, faites défiler la page qui regroupe les exemples du chapitre 7 de “iText in Action – Second Edition” pour trouver la version C # de ces exemples. . Par exemple BookmarkedTimeTable.cs

Vous remarquerez que la méthode setOutlines() n’existe pas dans iTextSharp, mais que vous devez utiliser la notation de la propriété:

 stamper.Outlines = outlines; 

Dans ce cas, outlines est un object de type List> (C #) au lieu de ArrayList> . Il devrait être assez simple pour un développeur C # de porter les exemples Java en C #, mais en cas de doute, vérifiez les fichiers cs disponibles sur le site Web officiel.