Depuis la version 25 de WINDEV, il est possible de manipuler des fichiers PDF par programmation très simplement grâce au nouveau type de variable pdfDocument.

 

Les fichiers PDF sont chargés en tant que tableau dans les variables pdfDocument. Il est donc ensuite très simple d'insérer ou de supprimer des pages. Il suffit pour cela de manipuler le tableau de pages.

 

 

// Suppression de page

MonPDF est un pdfDocument ="FichierPDFde10pages.pdf"

 

TableauSupprime(MonPDF.Page,2)

TableauSupprime(MonPDF.Page,3)
TableauSupprime(MonPDF.Page,4)

TableauSupprime(MonPDF.Page,5)

TableauSupprime(MonPDF.Page,6)

// Enregistre les modifications

PDFSauve(MonPDF,"testSuprr.pdf")

 

// Ajout de page

MonPDF est un pdfDocument = "FichierPDFde10pages.pdf"

MonPDF2 est un pdfDocument = "FichierPDFTest.pdf"

 

TableauInsère(MonPDF.Page,2,MonPDF2.Page[1])

TableauInsère(MonPDF.Page,5,MonPDF2.Page[4])

// Enregistre les modifications

PDFSauve(MonPDF,"testAjout.pdf")

 

Un autre exemple, ajout d'une image en dernier page d'un PDF existant :

 

sPDFTempImage est une chaîne = fRepTemp()+[fSep]+"tmp.pdf"

DocPDFTempImage est une pdfDocument

MonPDF est un pdfDocument


// Création d'un PDF temporaire d'une page contenant l'image à insérer...

iDestination(iPDF, sPDFTempImage)

iImprimeImage("c:\<chemin impage>.png", 0, 0, iLargeurPage(), iHauteurPage(), iAffichageHomoCentré)

iFinImprime()

// Le PDF temporaire est ouvert en tant que PDFDocument ...

DocPDFTempImage = sPDFTempImage

// Chargement du PDF existant à compléter et ajout de la page contenant l'image ...

MonPDF = "c:\<chemin pdf>.pdf"

TableauAjoute(MonPDF.Page,DocPDFTempImage.Page[1])

PDFSauve(MonPDF,"c:\temp\tmp.pdf")

fSupprime(sPDFTempImage)

< Retour

11 commentaires

Dominique Bodin
08/01/2020 - 17:12 - Répondre
Bonjour, je viens de tester cette fonctionnalité sur un pdf de 5 pages. Je supprime les pages 3 et 4, le pdf résultant est tronqué des ses pages 3 et 5, il ne lui reste plus que les pages 1, 2 et 4 ? Ce sont les pages 3 et 5 qui ont été supprimées ! Merci

Loic Hamel
08/01/2020 - 17:22 - Répondre
C'est tout à fait normal, lorsque vous supprimez le 3 ieme élément du tableau, tous lee éléments suivants "remontent". Ainsi pour supprimer la page 4; il faut à nouveau supprimer le 3 iéme élément. Il est d'ailleurs plus simple de commencer par la fin du tableau.

Dominique Bodin
08/01/2020 - 17:25 - Répondre
Je confirme ! Ne pas oublier les bases ;-) Merci

Laurent Nau
11/01/2020 - 17:43 - Répondre
Bonjour, Pourra-t-on ajouter des pages à partir d'une variable image ou buffer ? Merci

Guillaume BAYLE
13/01/2020 - 12:04 - Répondre
Bonjour, pour le moment l'insertion d'une image se fait en la générant en PDF, j'ai ajouté un exemple dans le billet. L'ajout via un type image a été suggéré à l'équipe développement. Bons développements !

Laurent NAU
13/01/2020 - 12:15 - Répondre
Merci pour votre réponse.

nau laurent
19/05/2020 - 20:47 - Répondre
Bonjour L'update 3 vient de sortir, l'équipe de développement a -t-elle prise en compte la demande d'insertion via image ou buffer ? Cordialement

Mounir OUAKEL
19/01/2020 - 18:21 - Répondre
Bonjour, Du moment où on peut ajouter et supprimer dans un fichier PDF, je vous proposer le changement du nom du Lecteur PDF par Éditeur PDF. Il manque juste l'OCR de toute urgence en natif dans Windev sans suppléments d'outils externes, et l'insertion d'image sans passer par iImprime..., ainsi ça deviendra l'outil parfait. Meilleures salutations Mounir OUAKEL

Gsam
07/03/2020 - 02:46 - Répondre
Bonjour, Est-il possible via cette variable de découper un PDF de 10 pages en 10 PDF d'une page ? Merci pour votre réponse. Salutations.

HAMEL LOIC
09/03/2020 - 09:54 - Répondre
Oui, c'est bien sûr possible. N'hésitez pas à faire une demande via le menu "? Requête au support technique pour avoir plus de détails."

BESSET Romuald
23/02/2024 - 11:09 - Répondre
MERCI ! Il serait super utile de trouver cela en parallèle de PDFExtraitPage qui produit des images... et nous induit vers un mauvais chemin. Alors que le type PDFDocument produit un simple tableau de page que l'on peut manipuler à souhait (fusion à partir de deux variables PDFDocument). C'est LA solution attendue : Bravo

Publier un commentaire : 
Votre adresse email ne sera pas publiée