Imprimer portrait ou Paysage

Résolu
dedenet2 Messages postés 372 Date d'inscription vendredi 27 juillet 2007 Statut Membre Dernière intervention 22 juillet 2013 - 4 sept. 2012 à 21:13
dedenet2 Messages postés 372 Date d'inscription vendredi 27 juillet 2007 Statut Membre Dernière intervention 22 juillet 2013 - 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

8 réponses

Utilisateur anonyme
5 sept. 2012 à 04:12
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()
3
Utilisateur anonyme
5 sept. 2012 à 03:50
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
1
Utilisateur anonyme
4 sept. 2012 à 23:29
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.
0
dedenet2 Messages postés 372 Date d'inscription vendredi 27 juillet 2007 Statut Membre Dernière intervention 22 juillet 2013 1
5 sept. 2012 à 20:35
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
5 sept. 2012 à 20:53
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.
0
dedenet2 Messages postés 372 Date d'inscription vendredi 27 juillet 2007 Statut Membre Dernière intervention 22 juillet 2013 1
6 sept. 2012 à 19:21
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
0
Utilisateur anonyme
6 sept. 2012 à 21:54
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.
0
dedenet2 Messages postés 372 Date d'inscription vendredi 27 juillet 2007 Statut Membre Dernière intervention 22 juillet 2013 1
7 sept. 2012 à 16:36
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
0
Rejoignez-nous