Ik heb een RTF-box waarvan ik graag de contents wil uitprinten.
Nu wil ik graag dat de gebruiker de gelegenheid krijgt om een aantal opties in te stellen dus ik dacht laat ik het commando ShowPrint gebruiken.
Nu werkt dat niet helemaal. Soms laat het programma de dialog wel zien, de andere keren weer niet.
Verder lukt het me niet om de opties (flags) mee te geven aan het print commando. Hieronder staat een voorbeeld hoe ik het deed.
Nu zou ik ook graag de mogelijkheid willen bieden om een selectie of om alles te printen. Nu kan ik dit zelf ook wel door de selectie op te halen en deze mee te geven in plaats van de hele tekst. (Printer.Print SelectionrtfBox) maar dat moet naar mijn idee makkelijker kunnen.
Op VBCity (in de FAQ) heb ik een code gevonden die wel goed werkt maar welke nu alleen kan printen op de standaard printer.
Ik slaag er niet in om de printer uit de ShowPrint dialog mee te geven aan die functie. (Als ik die dialog al voor me neus krijg.........) Kan het zijn dat ik eerst alle flags moet resetten voordat ik hem aanroep?
Het gaat om deze functie:
Ik dacht na het bestuderen van de code dat ik de handle mee moest geven maar dat blijkt het niet te zijn.
Die handle probeerde ik te vinden via. Printer.hdc. Dus ik riep de functie aan met:
Maar dit lijkt altijd de default printer te zijn.
Ik kom er niet uit....
Nu wil ik graag dat de gebruiker de gelegenheid krijgt om een aantal opties in te stellen dus ik dacht laat ik het commando ShowPrint gebruiken.
Nu werkt dat niet helemaal. Soms laat het programma de dialog wel zien, de andere keren weer niet.
Verder lukt het me niet om de opties (flags) mee te geven aan het print commando. Hieronder staat een voorbeeld hoe ik het deed.
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
| Sub Print Dim NoCopies as integer Dim n as integer CommonDialog1.ShowPrint NoCopies = CommonDialog1.Copies For n=1 to NoCopies Printer.Print rtfBox.Text next n End Sub |
Nu zou ik ook graag de mogelijkheid willen bieden om een selectie of om alles te printen. Nu kan ik dit zelf ook wel door de selectie op te halen en deze mee te geven in plaats van de hele tekst. (Printer.Print SelectionrtfBox) maar dat moet naar mijn idee makkelijker kunnen.
Op VBCity (in de FAQ) heb ik een code gevonden die wel goed werkt maar welke nu alleen kan printen op de standaard printer.
Ik slaag er niet in om de printer uit de ShowPrint dialog mee te geven aan die functie. (Als ik die dialog al voor me neus krijg.........) Kan het zijn dat ik eerst alle flags moet resetten voordat ik hem aanroep?
Het gaat om deze functie:
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
| Public Function PrintRTF(rtb As RichTextBox, _ Optional PrinterDC As Long = 0, _ Optional LeftMargin As Long = 1440, _ Optional TopMargin As Long = 1440, _ Optional RightMargin As Long = 1440, _ Optional BottomMargin As Long = 1440) Dim i As Long, prn As Object If (PrinterDC = 0) Then ' use the default printer PrintRTFText Printer, rtb, LeftMargin, TopMargin, RightMargin, _ BottomMargin, False Printer.EndDoc Else ' search for printer For i = 0 To Printers.Count - 1 If Printers(i).hdc = PrinterDC Then Set prn = Printers(i) PrintRTFText prn, rtb, LeftMargin, TopMargin, RightMargin, _ BottomMargin, False prn.EndDoc Exit For End If Next i End If End Function |
Ik dacht na het bestuderen van de code dat ik de handle mee moest geven maar dat blijkt het niet te zijn.
Die handle probeerde ik te vinden via. Printer.hdc. Dus ik riep de functie aan met:
Visual Basic:
1
2
3
4
5
6
7
8
| Dim NoCopies as integer Dim n as integer CommonDialog1.ShowPrint NoCopies = CommonDialog1.Copies For n=1 to NoCopies Call PrintRTF(rtfBox, Printer.hdc) next n |
Maar dit lijkt altijd de default printer te zijn.
Ik kom er niet uit....
[ Voor 64% gewijzigd door Schonhose op 15-04-2003 12:31 ]
"The thing under my bed waiting to grab my ankle isn't real. I know that, and I also know that if I'm careful to keep my foot under the covers, it will never be able to grab my ankle." - Stephen King
Quinta: 3 januari 2005