Printen in Gambas3 gaat een beetje anders dan printen in Gambas2.
upd jan 2018: zie ook printen in Gambas 3.9 (ev); vanaf 3.4 is Draw verouderd
Voor Gambas3 vind je documentatie op gambaswiki.org/wiki/howto/print
Je gebruikt de Klasse “Printer” om je eigen object van te maken.
Zoals je ziet gebeurt het eigenlijke werk in de _Draw() event:
Public MyPrinter AS Printer ' .. ' MyPrinter = New Printer As "MyPrinter" ' With MyPrinter .Orientation = Printer.Portrait .Paper = Printer.A4 .FirstPage = 0 End With ' IF Not MyPrinter.Configure() ' toont een printkeuzebox aan gebruiker MyPrinter.Print() ' maakt alle stappen _Begin, (_Paginate), _Draw, _End Endif ' Public Sub MyPrinter_Begin() ' MyPrinter.Count = iPageCount ' End ' Public Sub MyPrinter_Paginate() ' ' (nog uitzoeken) ' ' End Public Sub MyPrinter_Draw() ' Draw.FillColor = Color.Black Draw.Foreground = Color.Black Draw.Rect(20, 20, 100, 100) Draw.Text("ABCDEIFGQEFSDJFKLQ3", 100, 100) ' End Public Sub MyPrinter_End() ' Message.Info("Printed " & iPageCount & " page(s) ") ' End '
ps: misschien komt het vierkantje in de hoek niet goed door, dan moet je de lijn wat dikker zetten, standaard staat ze nogal dun merk ik.
Let verder op de beschikbare bladspiegel; die is normaal kleiner dan het papierformaat (marges door beperking printer).
Printer.FullPage
De rechthoek om in te printen begint bij 0,0.
Je moet gebruikers de kans geven om te finetunen.
Afmetingen in mm opvragen kan met:
Printer.PaperWidth
Printer.PaperHeight
Paint.Scale laat je toe mm te gebruiken:
Paint.Scale(Paint.Width / MyPrinter.PaperWidth, Paint.Height / MyPrinter.PaperHeight)
Paint.Font.Size geeft de absolute lettergrootte in typografische punten, ong 0.353 mm.
Ps: merk op dat de printerresolutie verschilt van (meestal groter is dan) de schermresolutie.
Kijk ook naar Paint.Scale, Paint.Translate, Paint.Rotate
, …