Imprimer portrait ou Paysage [Résolu]

dedenet2 372 Messages postés vendredi 27 juillet 2007Date d'inscription 22 juillet 2013 Dernière intervention - 4 sept. 2012 à 21:13 - Dernière réponse : dedenet2 372 Messages postés vendredi 27 juillet 2007Date d'inscription 22 juillet 2013 Dernière intervention
- 7 sept. 2012 à 16:36
Bonjour ,
Essaie de faire un définir les propriétés d'impression avant l'ouverture de la boite de
dialogue "impression".
Quand je clique , la boite s'affiche bien avec l'imprimante "Expert pdf" mais je n'arrive
pas à a définir l'orientation de la feuille. Que j'attribue True ou false a Landscape ,
l'orientation reste toujours sur Portrait.(en regardant dans les propriétes de l'imprimante).
Voici mon bout de code:

Dim PrintDialog1 As New PrintDialog()

PrintDialog1.Document = PrintDocument1
PrintDialog1.PrinterSettings.PrinterName = "Expert pdf"
PrintDialog1.PrinterSettings.DefaultPageSettings.Landscape = True
Dim result As DialogResult = PrintDialog1.ShowDialog()

If (result = DialogResult.OK) Then
PrintDocument1.Print()
End If
End Sub


Ou est le problème ?
<> ne
fonctionne pas !
Est il bien placer dans le code ? faut il écrire un autre code ?
Pouvez vous m'aider ?


Dedenet2
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
Utilisateur anonyme - 5 sept. 2012 à 03:50
3
Merci
Bonjour,

Tu dois fournir une instance d'une classe PageSettings à la propriété DefaultPageSettings et définir ton Landscape sur cette instance :
Dim doc As New PrintDocument
doc.DocumentName = "nom du document"
Dim ps As New PageSettings
ps.Landscape = True
doc.DefaultPageSettings = ps

Merci Utilisateur anonyme 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de Utilisateur anonyme
Meilleure réponse
Utilisateur anonyme - 5 sept. 2012 à 04:12
3
Merci
Adapté à ton cas cela donnerait :
Dim doc As New PrintDocument
doc.DocumentName = "Expert pdf"
doc.DefaultPageSettings New PageSettings() With {.Landscape True}

Dim PrintDialog1 As New PrintDialog()
PrintDialog1.Document = doc
Dim result As DialogResult = PrintDialog1.ShowDialog()

Merci Utilisateur anonyme 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de Utilisateur anonyme
Utilisateur anonyme - 4 sept. 2012 à 23:29
0
Merci
Bonjour,


Quand je clique , la boite s'affiche bien avec l'imprimante "Expert pdf" mais je n'arrive pas à a définir l'orientation de la feuille. Que j'attribue True ou false a Landscape ,l'orientation reste toujours sur Portrait.(en regardant dans les propriétes de l'imprimante).


Et quand tu utilises ton "Expert pdf" avec un programme du commerce, es-tu capable d'imprimer en paysage ?

Et quand tu utilises les boîtes de dialogues de VB pour imprimer, es-tu capable d'imprimer en paysage ?

Et quand tu regardes le manuel d'instructions de ton Expert Pdf, est-ce qu'il permet d'imprimer en paysage ?

As-tu regardé si tu peux outrepasser les boîtes de dialogue sans renseigner toutes les autres propriétés desdites boîtes, incluant le format du papier ?

As-tu remarqué dans l'aide de VB
que la classe PrinterSettings n'a pas
de propriété Landscape, mais a une propriété LandscapeAngle ?

Réponse Non

As-tu remarqué dans l'aide de VB
que la une propriété LandscapeAngle ne fonctionne que si l'imprimante accepte l'orientation paysage ET
que la propriété PageSettings.Landscape est à True ?

Réponse Non

As-tu juste fait l'effort d'ouvrir ton aide de VB ?

Réponse probable Non.
Commenter la réponse de Utilisateur anonyme
dedenet2 372 Messages postés vendredi 27 juillet 2007Date d'inscription 22 juillet 2013 Dernière intervention - 5 sept. 2012 à 20:35
0
Merci
Bonjour ,
cmarcotte,
Oui, on peut imprimer en portrait et en paysage.

Banana32,
Merci de ton dernier code que je n'ai pas trouvé mais cela fonctionne.
(doc.DefaultPageSettings New PageSettings() With {.Landscape True})
J'ai fait un petit aménagement car <<doc.DocumentName="Expert pdf">> ne fonctionne pas.
Je l'ai remplacé par << doc.PrinterSettings.PrinterName = "Expert pdf">>


Dim doc As New PrintDocument
AddHandler doc.PrintPage, AddressOf Me.doc_PrintPage
doc.PrinterSettings.PrinterName = "Expert pdf"
doc.DefaultPageSettings New PageSettings() With {.Landscapetrue}
Dim PrintDialog1 As New PrintDialog()
PrintDialog1.Document = doc
Dim result As DialogResult = PrintDialog1.ShowDialog()
If (result = DialogResult.OK) Then
doc.Print()
End If




Merci a vous
A++
Dedenet2
Commenter la réponse de dedenet2
Utilisateur anonyme - 5 sept. 2012 à 20:53
0
Merci
Merci pour la correction du code.
Je me demande quand même si l'abonnement à l'événement (ligne AddHandler ...) n'est pas placée trop haut dans ton code.
Il me semble que dans ton code c'est le nom du serveur de l'imprimante que tu modifies.
Il faudrait vérifier si la file d'attente de l'imprimante pendant l'impression contient bien le nom de ton document.
Je n'ai pas d'imprimante sur mon poste et ne peut donc pas tester.
Commenter la réponse de Utilisateur anonyme
dedenet2 372 Messages postés vendredi 27 juillet 2007Date d'inscription 22 juillet 2013 Dernière intervention - 6 sept. 2012 à 19:21
0
Merci
Bonsoir,
J'ai placé le code <> selon des exemples trouvés sur internet.
"Expert Pdf" fait partie de la liste des imprimantes se trouvant sur mon PC fixe et j'utilise
cette imprimante virtuelle pour éviter d'éditer une feuille a chaque test.
Je visualise donc mes résultats sur un fichier en pdf.
Avec le code ci dessus, le nom du document dans la file d'attente est par défaut "document" car je n'ai pas défini de "documentName". (je pense !).
Dès que j'ai insére le code << doc.documentName="TEST">> , le nom du document devient TEST.

A++
Dedenet2
Commenter la réponse de dedenet2
Utilisateur anonyme - 6 sept. 2012 à 21:54
0
Merci
et j'utilise cette imprimante virtuelle pour éviter d'éditer une feuille a chaque test
Merci je viens d'apprendre quelque chose


Dès que j'ai insére le code << doc.documentName="TEST">> , le nom du document devient TEST.
Ceci te permettra de savoir de quel document il s'agit lors d'impressions multiples.
Commenter la réponse de Utilisateur anonyme
dedenet2 372 Messages postés vendredi 27 juillet 2007Date d'inscription 22 juillet 2013 Dernière intervention - 7 sept. 2012 à 16:36
0
Merci
Bonjour ,
Si tu n'as pas d'imprimante , tu peux aussi installer PDF CREATOR qui est gratuit sur internet
en tant qu'imprimante virtuelle.
Tu le trouveras aussi dans la liste des imprimantes.

A+
Dedenet2
Commenter la réponse de dedenet2

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.