christophe68_is
Messages postés16Date d'inscriptionmercredi 25 avril 2018StatutMembreDernière intervention18 mai 2018
-
Modifié le 16 mai 2018 à 22:09
christophe68_is
Messages postés16Date d'inscriptionmercredi 25 avril 2018StatutMembreDernière intervention18 mai 2018
-
18 mai 2018 à 09:15
Hello tout le monde,
J’espère que vous allez bien. Je progresse sur mon apprentissage du langage VB (petit à petit), et je me lance dans un nouveau projet pour aider les utilisateurs à éviter de saisir des données répétitives extrait d'un document PDF.
Le but, ouvrir un fichier PDF, extraire l’ensemble des valeurs txt contenu dans les différents champs du document, et sélectionner certaines valeurs puis les extraire dans un fichier au format CSV.
J’ai commencé mon projet :
J’ai créé une fenêtre avec un objet : AxAcroPDF1 (fenêtre pour visualiser mon document PDF)
Un bouton pour sélectionner le document à ouvrir :
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
RichTextBox1.Clear()
Me.OpenFileDialog1.Filter = String.Empty
Me.OpenFileDialog1.ShowDialog()
Me.AxAcroPDF1.LoadFile(Me.OpenFileDialog1.FileName)
Threading.Thread.Sleep(2000)
//j'ai remarqué qu'il fallait un temps pour charger le document, sinon le cc fonctionne pas
AxAcroPDF1.Focus()
My.Computer.Keyboard.SendKeys("^a", True)
//idem pour faire le CTRL a
Threading.Thread.Sleep(1000)
My.Computer.Keyboard.SendKeys("^c", True)
Je me base sur la function sendkeys, pour effectuer un copier/coller du document PDF, et récupérer les valeurs des champs en TXT
J’affiche le contenu de mon copier coller dans un RichTextBox.
Tout fonctionne parfaitement. Par contre j’ai des lignes, avec des retours à la ligne :
1 *******
2********
3********
X ********
Là où je coince, je veux créer un bouton pour juste extraire la ligne 3 et 4 dans un fichier CSV, j’ai aucune idée même de l’approche, si vous pouvez m’aider, se serait avec grand plaisir.
Merci par avance, Christophe
EDIT : Ajout des balises de code (la coloration syntaxique). Explications disponibles ici : ICI
L'afficher, cela m'intéresse beaucoup, car dans la fenêtre form, cela permet à l'utilisateur de sélectionner et visualiser les données du PDF.
J'ai un peu progressé sur mon petit projet, j'ai utilisé un timer1 pour compter les lignes, et j'ai modifié ma fenêtre de réception des donnée en utilisant : TextBox1.
Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Label1.Text = "LINES : " & TextBox1.Lines.Length + 1
End Sub
A présent un petit label pour afficher le nombre de ligne, ça marche nickel, sauf que je dois faire "+1" pour avoir le résultat correct, je ne sais pas si il prend le 0 comme référence.
Maintenant que j'ai ça, il faut juste que je trouve comment faire une extraction de la ligne 12, 30, par exemple, ça c'est une autre histoire.
cs_Le Pivert
Messages postés7893Date d'inscriptionjeudi 13 septembre 2007StatutContributeurDernière intervention19 mai 2023136 Modifié le 17 mai 2018 à 11:51
Bonjour,
Pourquoi un timer?
Ces 2 lignes suffisent:
MsgBox(TextBox1.Lines.Length)'nombre de lignes
MsgBox(TextBox1.Lines(3))' affiche la 4ème ligne
christophe68_is
Messages postés16Date d'inscriptionmercredi 25 avril 2018StatutMembreDernière intervention18 mai 2018 18 mai 2018 à 09:15
Merci, en effet c'est ce que j'ai fait, en récupérant les valeurs dans des variables! Je me complique la vie pour rien, :-)