Imprimer un fichier pdf [Résolu]

maxkun 47 Messages postés mercredi 2 décembre 2009Date d'inscription 29 mai 2015 Dernière intervention - 8 févr. 2012 à 10:26 - Dernière réponse : maxkun 47 Messages postés mercredi 2 décembre 2009Date d'inscription 29 mai 2015 Dernière intervention
- 10 févr. 2012 à 16:12
Bonjour, j'aimerai savoir quel était le code pour imprimer un fichier pdf sur une imprimante donnée, sachant que l'imprimante sera dans une variable de type string.

Cordialement, maxkun
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
maxkun 47 Messages postés mercredi 2 décembre 2009Date d'inscription 29 mai 2015 Dernière intervention - 9 févr. 2012 à 14:16
3
Merci
J'ai trouvé ce code sur un site mais il y a une ligne que je ne comprends pas :

Dim pathToExecutable As String = "AcroRd32.exe"	 
Dim sReport = "C:Test.PDF" 'Complete name/path of PDF file	 
Dim SPrinter = "HP Officejet 5600 seriese" 'Name Of printer	 
Dim starter As New ProcessStartInfo(pathToExecutable, "/t " + sReport + " " + sPrinter + "")	 
Dim Process As New Process()	 
Process.StartInfo = starter Process.Start()
'try and close the process with 20 seconds delay
System.Threading.Thread.Sleep(30000)	 
Process.CloseMainWindow()
Dim iLoop As Int16 = 0
'check the process has exited or not
If Process.HasExited = False Then	 
'if not then loop for 100 time to try and close the process'with 10 seconds delay
While Not Process.HasExited
System.Threading.Thread.Sleep(10000)
Process.CloseMainWindow()
iLoop = CShort(iLoop + 1)	 
If iLoop >= 100 Then	 
Exit While
End If
End While
End If	 
Process.Close()
Process.Dispose()
Process = Nothing
starter = Nothing


La ligne que je ne comprends pas est :
Process.StartInfo = starter Process.Start()


Pourquoi l'auteur a t-il mit l'objet suivi de Process.Start()??
Je pense qu'il y a une faute de syntaxe mais je ne vois pas quelle est la bonne syntaxe.
Si vous avez des idées je vous écoute :)

Merci maxkun 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

Commenter la réponse de maxkun
Meilleure réponse
maxkun 47 Messages postés mercredi 2 décembre 2009Date d'inscription 29 mai 2015 Dernière intervention - 10 févr. 2012 à 16:12
3
Merci
Après quelques recherches, j'ai trouvé la bonne syntaxe, donc ça :

Process.StartInfo = starter Process.Start()


devient :

Process.StartInfo = starter 
Process.Start()


C'est tout simple en fait

Merci maxkun 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

Commenter la réponse de maxkun
guilleto 258 Messages postés jeudi 23 octobre 2003Date d'inscription 20 mars 2013 Dernière intervention - 8 févr. 2012 à 12:25
0
Merci
Bonjour,

Peux-tu indiquer sous quel environnement VB tu travailles (VB6, 2005, 2008 ou 2010) ?

Toutefois, voici un axe de recherche :
Essaie de faire un For Each sur tous les objets de type Printer afin de parcourir toutes les imprimantes.
Effectues un test entre ton nom d'imprimante au format string et l'élément Name de l'objet.

Je n'ai pas d'exemple de code pour le moment, fais un bout de code et mets le en réponse afin d'aider une autre personne qui chercherai la même chose.

Olivier
Commenter la réponse de guilleto
maxkun 47 Messages postés mercredi 2 décembre 2009Date d'inscription 29 mai 2015 Dernière intervention - 8 févr. 2012 à 12:35
0
Merci
Je travaille sous Visual Basic 2010.
Concernant les imprimantes, j'ai un petit code qui permet de toutes les lister, donc récupérer leurs nom n'est pas un problème :

Dim printers As System.Drawing.Printing.PrinterSettings.StringCollection
        printers = System.Drawing.Printing.PrinterSettings.InstalledPrinters()
        For x As Integer = 0 To printers.Count - 1
            liste_imprimante.Items.Add(printers(x))
        Next


J'avais dèjà un code pour des impressions, le souci c'est que mon premier code n'imprime pas les PDF, et le deuxième imprime seulement sur l'imprimante par défaut bien que je lui passe une autre imprimante en paramètre, voici le second code :

Sub impression(ByVal pathFile As String)
        Dim Prt_Proc As New Process ' imprime selon l'extension
        Try
            Prt_Proc.StartInfo.FileName = pathFile
            ' Selon type de fichier (print OU printTo)
            'Prt_Proc.StartInfo.Verb = "PrintTo"
            Prt_Proc.StartInfo.Verb = "Print"
            Prt_Proc.StartInfo.CreateNoWindow = True
            Prt_Proc.StartInfo.Arguments = "nom_imprimante"
            Prt_Proc.StartInfo.UseShellExecute = True
            Prt_Proc.Start()
            Prt_Proc.WaitForExit()
            Prt_Proc.Dispose()
        Catch ex As Exception
            Prt_Proc.Dispose()
        End Try
Commenter la réponse de maxkun

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.