|
Création de signets dans un pdf fusionné |
Débuté par ccariou, 06 mai 2014 12:51 - 2 réponses |
| |
| | | |
|
| |
Posté le 06 mai 2014 - 12:51 |
Bonjour,
J'essaie désespérément de recréer des signets dans un fichier PDF fusionné. J'ai utilisé PDFTK, GHOSTSCRIPT et mbPDFAsm et rien n'y fait. Je ne comprend pas pourquoi cela ne fonctionne pas.
Quelqu'un aurait-il déjà fait ça ?
Merci |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 962 messages |
|
Posté le 07 mai 2014 - 09:09 |
hello, si en fait tu veux remettre les signets des fichiers PDF que tu fusionnes tu peux utiliser l'assemblage dotnet itextSharp.
Voici un exemple en windev qui fusionne deux PDF en remettant les signets d'origine :
mesFichiersPDF est un tableau de chaînes Ajoute(mesFichiersPDF,"F:\pdf_with_bookmarks_1.pdf") Ajoute(mesFichiersPDF,"F:\pdf_with_bookmarks_2.pdf") MergeFichiersPDF(mesFichiersPDF,"F:\mergedPDF.pdf")
et voici la procédure MergeFichiersPDF
Procedure MergeFichiersPDF(tabFichiers est un tableau de chaînes,FichierDest est une chaîne)
n est un entier = 0 pagesTotales est un entier = 0 offsetPage est un entier = 0 page est un PdfImportedPage dynamique signets est une ArrayList premier est un booléen = Vrai monFLux est un FileStream(FichierDest,FileMode.Create) POUR TOUT fichierPDF DE tabFichiers MonFichierPDF est un PdfReader(fichierPDF) MonFichierPDF.ConsolidateNamedDestinations() n = MonFichierPDF.get_NumberOfPages() signetsTemp est une ArrayList dynamique = SimpleBookmark.GetBookmark(MonFichierPDF ) SI premier ALORS monDocument est un "iTextSharp.text.Document"(MonFichierPDF.GetPageSizeWithRotation(1)) monPdfCpy est un PdfCopy(monDocument, monFLux) monDocument.Open() SimpleBookmark.ShiftPageNumbers(signetsTemp,offsetPage, Null) offsetPage += n SI signetsTemp <> Null ALORS signets.AddRange(signetsTemp) pagesTotales = n premier = Faux SINON SimpleBookmark.ShiftPageNumbers(signetsTemp,offsetPage, Null) SI signetsTemp <> Null ALORS signets.AddRange(signetsTemp) offsetPage += n pagesTotales += n FIN POUR j=1 _A_ n page = monPdfCpy.GetImportedPage(MonFichierPDF, j); monPdfCpy.AddPage(page) FIN MonFichierPDF.Close() FIN monPdfCpy.Outlines = signets monDocument.Close()
Ami calmant, J.P |
| |
| |
| | | |
|
| | |
| |
Posté le 04 décembre 2017 - 20:18 |
Bonjour, Très instructif et très intéressant. J'ai aussi lu ton code pour obtenir les champs d'un formulaire PDF mais comment les modifier le contenu ou les remplir par programmation ? Merci |
| |
| |
| | | |
|
| | | | |
| | |
|