OVH Cloud OVH Cloud

RichTextBox impression coupée

11 réponses
Avatar
Youky
Salut à tous,
mon PB est que je n'arrive pas à imprimer entierement mon controle
RichTextBox.
Impossible de dépasser les 3/4 d'une page à l'impression même si mon texte
fait 2 ou 3 pages.
Je crois avoir tout essayé, si quelqu'un peut me guider.
Dois-je utiliser Word au moment de l'impression.....la mise en page...Pfff
et comment?
Sans votre aide mon programme restera au placard.
Merçi d'avance pour la plus petite aide soit'elle.
Mais comment fait Word
Bruno

1 réponse

1 2
Avatar
LE TROLL
Salut,

Peux-tu visualiser par exemple dans un textBox ta sélection, vois si
c'est bien sélectionné...
Autre piste, le texte qui enverrait lui-même des infos que l'imprimante
exécuterait??? Tu peux tester en ascii la fin de la coupure pour voir si
tout est normal...
---------

"Youky" a écrit dans le message de news:
41ea9c30$0$8035$
Re:Bonsoir François,
J'ai fais exactement comme tu l'as indiqué, hélas mon imprimante n'est pas
virtuelle.
Sans le printer.print et le printer.enddoc rien ne se passe, donc j'ai
remis
ces 2 lignes et
à l'impression arret à Ligne40.
je parle pas assez l'Anglais pour le site indiqué.
Je tourne avec VB5 et Word2000 et Win 98SE et Acrobat reader en lecture
Merçi encore pour tes renseignements Bruno
"François Picalausa" a écrit dans le message news:
OP4bgD##
Hello,

Pour l'impression, j'ai utilisé deux imprimantes virtuelles différentes:
- PDF Creator
http://sourceforge.net/projects/pdfcreator/
- Microsoft Office Document Image Writer
(fournit avec Microsoft Office 2003)

Voici mon code complet:
'Une form avec
' - un command button (Command1), pour l'impression
' - Un richtextbox RichTextBox1
'Toutes les propriétés par défaut, si ce n'est le caption de Command1 >> "Imprimer"
Option Explicit

Private Sub Command1_Click()
Debug.Print Printer.DeviceName
RichTextBox1.SelLength = 0
RichTextBox1.SelPrint Printer.hDC
End Sub

Private Sub Form_Load()
Dim i As Long

'On va imprimer quelques 300 lignes dans le RTB
'4 pages
RichTextBox1.Text = ""

For i = 1 To 300
AddLine "Ligne " & i
Next i
End Sub

Private Sub AddLine(Text As String)

'Affreux bidouillage pour déterminer (dépasser) la longueur
RichTextBox1.SelStart = LenB(RichTextBox1.TextRTF)

'Ajout de la ligne
RichTextBox1.SelText = Text & vbCrLf
End Sub

Vu que ce code fonctionne ici, la seule chose qui pourrait, à mon sens,
poser problème sont les lignes :
Printer.Print ""
Printer.EndDoc

Cette dernière ligne génère une erreur avec Microsoft Office Document


Image
Writer (non testé avec PDF Creator)... donc pourrait avec un autre pilote
d'imprimante poser problème, je suppose... mais ce n'est qu'une


supposition!
Quand a savoir pourquoi la ligne 40, je n'en sais trop rien....

Il y a bien une autre différence dans ton code: l'utilisation de chr(10)


au
lieu du 13 et 10 (vbLf au lieu de vbCrLf), mais le problème ne semble pas
venir de là car dans mon code, quand j'utise vbLf, je ne constate pas de
problèmes...

--
François Picalausa

"Youky" a écrit dans le message de news:
41ea7320$0$6416$
> L'impression s'arrête à la ligne 40, Pkoi ?
> pour vous guider voici qlq lignes
> j'ai fais un RichTextbox nommé txt et est fait 2 boutons
> le 1er écrit de 1 à 50 et le second imprime
> à savoir j'ai mis les propriété font de mon txt Time new Roman
> taille 12 de plus testé sur 3 PC donc c'est pas un PB de PC
> voici mon adresse Email si vous souhaitez m'envoyer un fichier pour me
> prouver que cela marche.
>
>
> Private Sub Command1_Click()
> For k = 1 To 50
> txt.Text = txt.Text & k & Chr(10)
> Next
> End Sub
>
> Private Sub Command2_Click()
> Printer.Print ""
> txt.SelStart = 0
> txt.SelLength = 0 'Len(ActiveForm.txt.Text)
> txt.SelPrint (Printer.hDC)
> Printer.EndDoc
> End Sub








1 2