Imprimer selection imprimante???

Résolu
cs_ludwig89 Messages postés 47 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 18 septembre 2009 - 27 sept. 2004 à 09:16
cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 - 27 sept. 2004 à 11:37
bonjour

en vb6

j'ai le contenu d'une richtextbox à imprimer

cboulas m'a proposer ce code (merci bcp cboulas et vous tous aussi)

frmMain.RichTextBox1.SelStart = 0
frmMain.RichTextBox1.SelLength = Len(frmMain.RichTextBox1.Text)
frmMain.RichTextBox1.SelPrint (Me.hDC)

mais cela ne fonctionne pas, cela aurait été trop facile, ne faut t'il pas selectionner l'imprimante avant et a koi corrrespond la variable (Me.hDC) (en debug elle avait une valeur de 8302)

merci de votre aide

8 réponses

cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 16
27 sept. 2004 à 10:59
Voici ce que j'ai trouver dans la MSDN

SelPrint, méthode
      
Envoie le texte formaté dans un contrôle Éditeur RTF (RichTextBox) vers un périphérique d'impression.

Syntaxe

object.SelPrint(hdc)

La syntaxe de la méthode SelPrint comprend les éléments suivants :

Élément Description 
object Expression d'objet qui correspond à la valeur d'un objet figurant dans la rubrique "Application". 
hdc Contexte de périphérique sur lequel sera imprimé le contenu du contrôle. 

Remarques

Si vous sélectionnez du texte dans le contrôle RichTextBox, la méthode SelPrint envoie uniquement ce texte au périphérique cible. Si vous ne sélectionnez pas de texte, elle envoie la totalité du contenu du contrôle RichTextBox au périphérique spécifié.

La méthode SelPrint n'imprime pas le texte extrait du contrôle RichTextBox, mais envoie au périphérique une copie pour impression du texte formaté. Vous pouvez, par exemple, envoyer le texte à l'objet Printer avec le code suivant :

RichTextBox1.SelPrint(Printer.hDC)

Vous remarquerez que la propriété hDC de l'objet Printer est utilisée pour spécifier la valeur du contexte de périphérique de la méthode SelPrint.

Note   Pour que l'objet Printer soit désigné comme destination du texte extrait du contrôle RichTextBox, vous devez d'abord initialiser le contexte de périphérique de l'objet Printer en imprimant par exemple une chaîne de longueur nulle.


SelPrint, méthode, exemple
Cet exemple imprime un texte formaté dans un contrôle Éditeur RTF (RichTextBox). Pour tester cet exemple, placez un contrôle RichTextBox, CommonDialog et CommandButton dans une feuille. Collez le code suivant dans l'événement Click du contrôle CommandButton, puis exécutez l'exemple.

Private Sub Command1_Click()
   CommonDialog1.Flags = cdlPDReturnDC + cdlPDNoPageNums
   If RichTextBox1.SelLength = 0 Then
      CommonDialog1.Flags = CommonDialog1.Flags + cdlPDAllPages
   Else
      CommonDialog1.Flags = CommonDialog1.Flags + cdlPDSelection
   End If
   CommonDialog1.ShowPrinter
   Printer.Print ""
   RichTextBox1.SelPrint CommonDialog1.hDC
End Sub


Chris...
Firstruner
3
cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 16
27 sept. 2004 à 09:40
En fait la sélection d'imprimante ce fait avec le contrôle :

CommonDialog.showprinter

Chris...
Firstruner
0
cs_ludwig89 Messages postés 47 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 18 septembre 2009
27 sept. 2004 à 10:21
ect le meme commondialog que celui utilisé pour ouvrir et enregistrer les fichier

jai tenté cela en remplacant showopen par showprinter mais il ne se passe rien

With dlgCommonDialog
'.InitDir = chemin
.DialogTitle = "Ouvrir"
.CancelError = False
'.Filter = "Tous les fichiers (*.*)|*01.cnc"
.ShowPrinter
' If Len(.FileName) = 0 Then
' Exit Sub
' End If
' sFile = .FileName
End With

que faire????
0
cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 16
27 sept. 2004 à 10:46
Le 'End With' est mal placer.

With dlgCommonDialog
.InitDir = chemin
.DialogTitle = "Ouvrir"
.CancelError = False
.Filter = "Tous les fichiers (*.*)|*01.cnc"
End With

dlgCommonDialog.ShowPrinter

If Len(dlgCommonDialog.FileName) = 0 Then
Exit Sub
End If
sFile = .FileName

Chris...
Firstruner
0

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

Posez votre question
cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 16
27 sept. 2004 à 10:46
Le 'End With' est mal placer.

With dlgCommonDialog
.InitDir = chemin
.DialogTitle = "Ouvrir"
.CancelError = False
.Filter = "Tous les fichiers (*.*)|*01.cnc"
End With

dlgCommonDialog.ShowPrinter

If Len(dlgCommonDialog.FileName) = 0 Then
Exit Sub
End If
sFile = dlgCommonDialog.FileName

Chris...
Firstruner
0
cs_ludwig89 Messages postés 47 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 18 septembre 2009
27 sept. 2004 à 11:21
merci cboulas pour l'info

voila ce que g fait pour que cela fonctionne

Printer.Print ""
frmMain.RichTextBox1.SelStart = 0
frmMain.RichTextBox1.SelLength = Len(frmMain.RichTextBox1.Text)
frmMain.RichTextBox1.SelPrint (Printer.hDC)

par contre un dernier petit souci mon imprimante eest configuré par defaut en paysage, je ne veux pas modifier la config, comment imprimer en portrait
0
cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 16
27 sept. 2004 à 11:35
Utilise :

printer.Orientation = vbPRORPortrait


Chris...
Firstruner
0
cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 16
27 sept. 2004 à 11:37
Pour info : Hdc

hDC, propriété

Renvoie undescripteur fourni par l'environnement d'exploitation Microsoft Windows pour lecontexte de périphérique d'un objet.

Syntaxe

object.hDC

L'espace réservé object représente uneexpression d'objet qui prend la valeur d'un objet figurant dans la rubrique "Application".

Remarques

La propriété hDC est un descripteur de contexte de périphérique dans l'environnement d'exploitation Microsoft Windows. Le système d'exploitation gère l'affichage en affectant un contexte de périphérique à l'objet Printer, à chaque feuille et à chaque contrôle PictureBox d'une application. Vous pouvez utiliser la propriété hDC pour faire référence au descripteur associé au contexte de périphérique d'un objet, ce qui vous permet de transmettre une valeur aux appels de l'API de Windows.

Dans le cas d'un contrôle CommonDialog, cette propriété renvoie un contexte de périphérique pour l'imprimante sélectionnée dans la boîte de dialogue Impression lorsque l'indicateur cdlReturnDC est défini, ou un contexte d'information lorsque l'indicateur cdlReturnIC est défini.

Note   Comme la valeur de la propriété hDC peut changer pendant l'exécution d'un programme, n'enregistrez pas la valeur renvoyée dans une variable ; utilisez plutôt la propriété hDC chaque fois que nécessaire.

La propriété AutoRedraw peut provoquer une modification de la propriété hDC. Si la valeur de la propriété AutoRedraw est True pour une feuille ou un conteneur PictureBox, hDC agit comme un descripteur de contexte de périphérique dugraphique permanent (équivalant à la propriété Image). Lorsque la valeur de la propriété AutoRedraw est False, hDC devient la valeur réelle de la fenêtre Feuille ou du conteneur PictureBox. La valeur de la propriété hDC peut changer pendant l'exécution d'un programme, quelle que soit la valeur de la propriété AutoRedraw.

Si la valeur False est affectée à la propriété HasDC, un nouveau contexte de périphérique sera créé par le système et la valeur de la propriété hDC changera à chaque appel.


Chris...
Firstruner
0
Rejoignez-nous