Imprimer fichier texte [Résolu]

Messages postés
8
Date d'inscription
mercredi 31 octobre 2012
Dernière intervention
25 février 2010
- - Dernière réponse : majo59
Messages postés
8
Date d'inscription
mercredi 31 octobre 2012
Dernière intervention
25 février 2010
- 25 févr. 2010 à 10:33
Bonjour à tous et à toutes


Voilà, j'ai mon programme dans lequel un fichier texte se créée (du texte, des calcul...), bref, là n'est pas le problème.

Mon fichier texte est bien beau et existe, mais pendant l'application j'aimerai l'imprimé, sans devoir allez le chercher dans le pc ou autre.

Je connais le nom du fichier, son chemin d'accès, je n'ai qu'à l'imprimer...

Je galère depuis deux jour et je ne trouve rien... Mais je pense (j'espère) qu'il existe une fonction toute simple du genre:

Print(chemin d'accès, nom de fichier)

ou autre (c'est beau l'espoir)


Merci d'avance, je suis en galère :s
Afficher la suite 

Votre réponse

11 réponses

Meilleure réponse
Messages postés
69
Date d'inscription
lundi 9 novembre 2009
Dernière intervention
24 février 2010
1
Merci
Bonjour , j'espere que ce code te seras util :

      Dim monProcess As New Process()
      monProcess.StartInfo.FileName = Chemin
      monProcess.StartInfo.Verb = "Print"
      monProcess.StartInfo.CreateNoWindow = True
      monProcess.Start()

Merci malakrouhhi 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de malakrouhhi
Messages postés
1241
Date d'inscription
mardi 10 octobre 2006
Dernière intervention
27 août 2013
0
Merci
Bonjour,

Dans ton projet tu peux rajouter un composant "Printdocument"
Ensuite il suffit de spécifier dans dans le paramètre "Documentname" le chemin de ton fichier, puis de lancer "print":

PrintDocument1.DocumentName = chemin_txt
PrintDocument1.Print()

L'expérience, c'est une connerie par jour, mais jamais la même..
Commenter la réponse de lolokun
Messages postés
8
Date d'inscription
mercredi 31 octobre 2012
Dernière intervention
25 février 2010
0
Merci
Code de mon bouton imprimer

    Private Sub BT_IMPRIMER_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BT_IMPRIMER.Click

        PrintDocument1.DocumentName = "c:\test2\te-st.txt"

        PrintDocument1.Print()

    End Sub


il m'imprime une feuille blanche...


ps: j'adore ta dernière phrase ;)
Commenter la réponse de majo59
Messages postés
113
Date d'inscription
lundi 31 mars 2003
Dernière intervention
19 décembre 2011
0
Merci
Bonjour,

Dans VB 6.0, il y a aussi l'objet Printer. Rien a ajouter pour l'utiliser mais pas trop pratique de prime abord... Je peux t'aider si besoin.

Pac
Commenter la réponse de cs_pacadebord
Messages postés
113
Date d'inscription
lundi 31 mars 2003
Dernière intervention
19 décembre 2011
0
Merci
Oups, on est pas dans VB 6.0 ! Je sors...

Pac
Commenter la réponse de cs_pacadebord
Messages postés
8
Date d'inscription
mercredi 31 octobre 2012
Dernière intervention
25 février 2010
0
Merci
Oui vb.net... Merci quand même :p

Toujours personne??
Commenter la réponse de majo59
Messages postés
8
Date d'inscription
mercredi 31 octobre 2012
Dernière intervention
25 février 2010
0
Merci
Alors ça c'est ce que j'appelle de la simplicité, je te remercie grandement.

Et tu serait mon idole si tu savait comment on modifier les marge d'un fichier texte en vb.net :D

Mon fichier passe sur une feuille, mais lorsqu'on imprime directement, il nous fait des marge a la Microsoft Word : 2cm sur chaque côté.
Commenter la réponse de majo59
Messages postés
1241
Date d'inscription
mardi 10 octobre 2006
Dernière intervention
27 août 2013
0
Merci
Ha oui j'y pensais plus à cette méthode en .net le printdocument est effectivement un peu plus complexe ;)




L'expérience, c'est une connerie par jour, mais jamais la même..
Commenter la réponse de lolokun
Messages postés
8
Date d'inscription
mercredi 31 octobre 2012
Dernière intervention
25 février 2010
0
Merci
C'est vrai que cette méthode là est basique est simple mais 3 ou 4 truc me dérange :

- les marges
- le nom du fichier texte en haut de la feuille.

Voilà, bien que ma question ai eu une réponse, mon problème n'est toujours pas réglé :s
Commenter la réponse de majo59
Messages postés
1241
Date d'inscription
mardi 10 octobre 2006
Dernière intervention
27 août 2013
0
Merci
Voici qui devrait plus répondre à tes attentes où tu peux spécifier la marge (si besoin un lien avec un cours ici:

Imports System.Drawing.Printing
Imports System.io

Inherits System.Windows.Forms.Form
Private printFont As Font
Private streamToPrint As StreamReader



Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Try
streamToPrint = New StreamReader("C:\Analyse.txt")
Try
printFont = New Font("Arial", 10)
Dim pd As PrintDocument = New PrintDocument() 'déclaration du PrintDocument
AddHandler pd.PrintPage, AddressOf Me.pd_PrintPage
pd.Print()
Finally
streamToPrint.Close()
End Try

Catch ex As Exception
MessageBox.Show("Une erreur est survenue: - " + ex.Message)
End Try

End Sub

'Evènement survenant pour chaque page imprimer
Private Sub pd_PrintPage(ByVal sender As Object, ByVal ev As System.Drawing.Printing.PrintPageEventArgs)

Dim lpp As Single = 0 'nombre de ligne par page
Dim yPos As Single = 0 'ordonnée
Dim count As Integer = 0 'numéro de ligne
Dim leftMargin As Single = ev.MarginBounds.Left
Dim topMargin As Single = ev.MarginBounds.Top
Dim line As String

'calcul le nombre de ligne par page
' hauteur de la page/hauteur de la police de caractère
lpp = ev.MarginBounds.Height / printFont.GetHeight(ev.Graphics)


'lit une ligne dans le fichier
line = streamToPrint.ReadLine()


'Boucle affichant chaque ligne

While (count < lpp And line <> Nothing)

yPos = topMargin + (count * printFont.GetHeight(ev.Graphics))

'Ecrit le texte dans l'objet graphique
ev.Graphics.DrawString(line, printFont, Brushes.Black, leftMargin, _
yPos, New StringFormat())

count = count + 1

If (count < lpp) Then
line = streamToPrint.ReadLine()
End If

End While

'S'il y a encore des lignes, on réimprime une page
If (line <> Nothing) Then
ev.HasMorePages = True
Else
ev.HasMorePages = False
End If

End Sub


L'expérience, c'est une connerie par jour, mais jamais la même..
Commenter la réponse de lolokun
Messages postés
8
Date d'inscription
mercredi 31 octobre 2012
Dernière intervention
25 février 2010
0
Merci
Merci pour ce code bien complet.

Mais je ne m'en servirais pas. Je m'explique. Il permet en effet, de bien imprimer à sa façon mais il y a quelques problèmes :

- il ne prend pas en compte les tabulations du fichier texte, et dans mes fichier texte elle me permettent de faire une "belle" mise en page.

- dès qu'une ligne est vide, (retour a la ligne) il s'arrête. Donc si vous laissez un espace entre deux ligne l'impression se termine trop tôt.


Sinon ce code marche bien, mais dans mon cas, il est inutile.

Merci quand même
Commenter la réponse de majo59

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.