Liens excel VERS pdf

Signaler
Messages postés
1
Date d'inscription
lundi 22 décembre 2008
Statut
Membre
Dernière intervention
22 décembre 2008
-
Messages postés
661
Date d'inscription
vendredi 2 décembre 2005
Statut
Membre
Dernière intervention
23 mars 2011
-
Bonjour,
J'aurai aimé savoir si cela été possible d'envoyer des données excel ds un fichier pdf remplissable?

J'ai un fichier pdf et je doit remplir à la main des informations à l'intérieur, et je me demandai si il n'exitait une formule ou macro pour faire un lien avec excel pour envoyer directement les info présentes ds un tableau excel...??

J'espère être clair,
Merci pour vos réponses.

1 réponse

Messages postés
661
Date d'inscription
vendredi 2 décembre 2005
Statut
Membre
Dernière intervention
23 mars 2011
8
Salut,

Oui c'est tout à fait possible. Cependant, le code que j'ai élaboré est en VB.NET :

<hr size= "2" width="100%" />Comment faire ?
<hr size="2" width="100%" />
1° Ajouter la référence iTextSharp.dll à ton projet (Projet > Ajouter une référence > Onglet Parcourir)
              Téléchargeable à cette adresse : http://dl.free.fr/ly4rhenoY

<hr size="2" width="100%" />2° Juste avant Public Class, ajouter :
<hr size="2" width="100%" />
Imports iTextSharp
Imports iTextSharp.text
Imports iTextSharp.text.pdf
Imports iTextSharp.text.xml
Imports System.IO
Imports System.Text

<hr size="2" width="100%" />3° Juste après Public Class, ajouter :
<hr size="2" width="100%" />
          ' Collection qui recevra le nom des champs du PDF
          Dim NomChamps As New Collections.Generic.List(Of String)
          ' Collection qui doit contenir la valeur des champs
          Dim ValeurChampsAs New Collections.Generic.List(Of String)

<hr size="2" width="100%" />4° Récupérer le nom des champs du PDF
<hr size="2" width="100%" />
Syntaxe :

Note : NomChamps contiendra les noms des champs dans l'ordre du formulaire

ListeChampsPDF( "D:\Temp\PDF\fw4.pdf" , NomChamps)

1° Argument : Chemin d'accès complet du PDF
2° Argument : Collection qui doit contenir le nom des champs du PDF

<hr size ="2" width= "100%" />
Sub  ListeChampsPDF(ByVal FileNamePDF As StringByRef tab As Collections.Generic.List(Of String))

     Dim pdfTemplate As String  = FileNamePDF

     ' Titre de la fenêtre
     Me.Text +=   " - "  + pdfTemplate

     ' Création d'un nouveau lecteur de PDF basé sur l'ancien document
      Dim  pdfReader As PdfReader  = New PdfReader(pdfTemplate)

     ' Création d'une variable StringBuilder qui va contenir le nom
     ' des champs du PDF
     Dim sb As StringBuilder =   New  StringBuilder

     For Each de As DictionaryEntry In pdfReader.AcroFields.Fields
          tab.Add(de.Key.ToString())
     Next

End Sub

<hr size ="2" width= "100%" />5° Remplir le PDF
<hr size="2" width="100%" />
Syntaxe :

Attention : Il faut avant l'utilisation de cette fonction, remplir la collection ValeurChamps avec les valeurs qui faut remplir dans les champs

RemplirFormulairePDF( "D:\Temp\PDF\fw4.pdf" , "D:\Completfw4.pdf", NomChamps, ValeurChamps)


1° Argument : Chemin d'accès complet du PDF à remplir
2° Argument : Chemin d'accès complet du nouveau PDF modifié

3° Argument : Collection qui contient le nom des champs du PDF
4° Argument : Collection qui contient la valeur des champs du PDF

<hr size ="2" width= "100%" />
Sub  RemplirFormulairePDF(ByVal OldFileNamePDF As StringByVal NewFileNamePDF As StringByVal Champs As Collections.Generic.List(Of String), ByVal value As Collections.Generic.List(Of String))
    
     Dim pdfTemplate As String  = OldFileNamePDF
     Dim newFile As String =  NewFileNamePDF

      Dim  pdfReader As New PdfReader(pdfTemplate)
     Dim pdfStamper As New PdfStamper(pdfReader, New FileStream(newFile, FileMode.Create))
     Dim pdfFormFields As AcroFields  = pdfStamper.AcroFields
     If Champs.Count   0  <gras>Or value.Count </gras> 0 Or Champs.Count  <>  value.Count Then
          Exit Sub
     End If

     ' Remplis les Champs du PDF
     For nb As Integer  =   0  To Champs.Count - 1
          pdfFormFields.SetField(Champs(nb), value(nb))
     Next

     pdfStamper.FormFlattening  = False

     ' Ferme le PDF
     pdfStamper.Close()

End Sub

<hr size="2" width="100%" />Pour toute question, n'hésites pas

++

Fauve
<hr size="2" width="100%" />Pensez : Réponse Acceptée