|
FOROS PROFESIONALES WINDEV, WEBDEV y WINDEV Mobile |
| | | | | |
| PDFusionne avec signets de titres |
| Iniciado por THIERRY TILLIER, 06,jul. 2020 21:05 - 3 respuestas |
| |
| | | |
|
| |
Miembro registrado 1.173 mensajes |
|
| Publicado el 06,julio 2020 - 21:05 |
Bonsoir,
Et, oui la question qui suit mon dernier post est celle-ci : Comment fusionner 2 PDF dont l'un contient des signets que je souhaite conserver.
J'ai vu pas mal de sujets évoquant le problème mais aucun ne le résout (hormis peut-être avec iTexteSharp qui est payant).
Avez-vous d'autres inspirations sur le sujets ?
-- Thierry TILLIER Développeur Windev-Webdev Formation Windev : https://coursdinfo.teachable.com/ Formation bureautique : https://coursdinfo.net |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 1.173 mensajes |
|
| Publicado el 06,julio 2020 - 21:06 |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 962 mensajes |
|
| Publicado el 07,julio 2020 - 07:13 |
hello, THIERRY TILLIER a écrit : > J'ai vu pas mal de sujets évoquant le problème mais aucun ne le résout (hormis peut-être avec iTexteSharp qui est payant).
itextsharp qui est devenu itext 7 n'est pas vraiment payant, il a une licence AGPL c'est à dire que : Si vous souhaitez commercialiser votre projet F/OSS, vous devez obligatoirement acheter une licence commerciale pour supprimer les restrictions de copyleft. Vous serez alors autorisé à vendre ou à utiliser votre application en code source propriétaire. Pour une utilisation interne, il n'y pas alors de restriction.
Toutefois on peut toujours utiliser l'ancienne version 4.1.6 qui elle est de licence LGPL/MPL c'est à dire sans restriction même en utilisation commerciale.
Voici comment fusionner deux documents PDF (avec ou sans signet) en utilisant la version 4.1.6 d'itextsharp A - Récupérer la version 4.1.6 de itextsharp 1 - page de téléchargement : https://www.nuget.org/packages/itextsharp.4.1.6.0 2 - Télécharger le paquet nuget (.nupkg) - décompresser le (avec 7zip par exemple) et extraire le fichier itextsharp.dll qui se trouve dans le répertoire lib du nupkg 3 - Ajouter l'assemblage dotnet itextsharp à son projet
Procédure de fusion de fichiers PDF (avec ou sans signet) :
PROCEDURE FusionFichiersPDF(tabFichiers est un tableau de chaînes,FichierDest est une chaîne) // J.P Juillet 2020 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() SI signetsTemp <> Null ALORS SimpleBookmark.ShiftPageNumbers(signetsTemp,offsetPage, Null) signets.AddRange(signetsTemp) FIN offsetPage += n pagesTotales = n premier = Faux SINON SI signetsTemp <> Null ALORS SimpleBookmark.ShiftPageNumbers(signetsTemp,offsetPage, Null) signets.AddRange(signetsTemp) FIN 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()
Exemple d'utilisation :
mesFichiersPDF est un tableau de chaînes Ajoute(mesFichiersPDF,"M:\test\pdf_avec_signets.pdf") Ajoute(mesFichiersPDF,"M:\test\pdf_sans_signet.pdf") FusionFichiersPDF(mesFichiersPDF,"M:\test\fusionPDF.pdf")
-- Ami calmant, J.P |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 1.173 mensajes |
|
| Publicado el 07,julio 2020 - 08:09 |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|