Imprimer fichier texte [Résolu]

majo59 8 Messages postés mercredi 31 octobre 2012Date d'inscription 25 février 2010 Dernière intervention - 24 févr. 2010 à 10:08 - Dernière réponse : majo59 8 Messages postés mercredi 31 octobre 2012Date d'inscription 25 février 2010 Dernière intervention
- 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
malakrouhhi 69 Messages postés lundi 9 novembre 2009Date d'inscription 24 février 2010 Dernière intervention - 24 févr. 2010 à 11:02
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

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

Commenter la réponse de malakrouhhi
lolokun 1241 Messages postés mardi 10 octobre 2006Date d'inscription 27 août 2013 Dernière intervention - 24 févr. 2010 à 10:35
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
majo59 8 Messages postés mercredi 31 octobre 2012Date d'inscription 25 février 2010 Dernière intervention - 24 févr. 2010 à 10:45
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
cs_pacadebord 113 Messages postés lundi 31 mars 2003Date d'inscription 19 décembre 2011 Dernière intervention - 24 févr. 2010 à 10:48
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
cs_pacadebord 113 Messages postés lundi 31 mars 2003Date d'inscription 19 décembre 2011 Dernière intervention - 24 févr. 2010 à 10:49
0
Merci
Oups, on est pas dans VB 6.0 ! Je sors...

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

Toujours personne??
Commenter la réponse de majo59
majo59 8 Messages postés mercredi 31 octobre 2012Date d'inscription 25 février 2010 Dernière intervention - 24 févr. 2010 à 11:08
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
lolokun 1241 Messages postés mardi 10 octobre 2006Date d'inscription 27 août 2013 Dernière intervention - 24 févr. 2010 à 11:20
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
majo59 8 Messages postés mercredi 31 octobre 2012Date d'inscription 25 février 2010 Dernière intervention - 24 févr. 2010 à 11:24
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
lolokun 1241 Messages postés mardi 10 octobre 2006Date d'inscription 27 août 2013 Dernière intervention - 24 févr. 2010 à 11:49
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
majo59 8 Messages postés mercredi 31 octobre 2012Date d'inscription 25 février 2010 Dernière intervention - 25 févr. 2010 à 10:33
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.