1. How do I write a program that prints some text?
- This example shows how to print some text to the default printer in easy steps. The first step
is to start the Developer Environment by double clicking its icon:

- Use the File - New - Text File menu command to open a blank window. Then type in the
following program (or copy and paste this program from the browser window):
// Printing.cls
Ubercode 1 Class Printing
public function main()
code
call Startprint(SysPrinter)
call Drawtext(SysPrinter, "Hello Printer!" + NL)
call Drawtext(SysPrinter, "Have a nice day..." + NL)
call Endprint(SysPrinter)
end function
end class
- The program has a single public function called main. Main is special because Windows
starts there when it loads the program.
- In the actual code part of main the call to Startprint activates the printer, and SysPrinter
means the Windows default printer.
- The calls to Drawtext send text to the printer. The text is enclosed in double quotes ("...").
NL means a New Line string, which causes the printer to move to the start of the next line. The
strings are joined using the "+" sign.
- The call to Endprint closes the printer. Endprint must always be called after Startprint.
- Use the File - Save As command to save the program.
- Use the Run - Quickbuild EXE File menu command to start the compiler, then wait for it
to finish. If you entered the class as shown it will compile without errors. If there were errors
the error message gives the line number of the error, so go to this point and check the syntax. The
gaps between words doesn't matter and you can enter letters in upper or lower case. However the
spelling and punctuation do matter. Also check you are typing the double quote character around the
strings, you cannot type a single quote twice.
- After the program successfully compiled run it with the Run - Start menu command. The
program should finish running after a few seconds, but it may take 30 seconds or so for the
printout to appear. Note the program requires either a printer attached to your PC, or requires a
network printer.
- The printout should have two lines of text on it, because we printed two lines using
Drawtext.
- Although outside the scope of this example, the program can be modified to use a non-default
printer. Printer names have a maximum length of MAX_PRINTERNAME (255 characters).
2. How do I print some text from a file?
This program shows how to load a text file and copy the text to the printer:
// Printfile.cls
Ubercode 1 Class Printfile
function Printme(in text:string[*])
var
count:integer(0:MAXINT)
code
call Startprint(Sysprinter)
call SetFontname(Sysprinter, "Times New Roman")
call SetFontsize(Sysprinter, 14)
call SetFontitalic(Sysprinter, True)
for count from 1 to Strcount(text)
call Drawtext(Sysprinter, Strline(text,count))
end for
call Endprint(Sysprinter)
end function
public function main()
var
textstr:string[*]
filename:string[*]
code
filename <- Openfiledialog("Choose File", 0, "*.txt")
call Loadfile(filename, FILE_TEXT, textstr)
if textstr /= "" then
call Printme(textstr)
end if
end function
end class
The program works as follows. The code that does the printing is put in a separate function
Printme to make the program easier to understand. In general function main should
contain as little code as possible, to make it easier to change the program as it develops. The
most important lines in function Printme are:
call Startprint(Sysprinter)
...
call Drawtext(Sysprinter, text)
...
call Endprint(Sysprinter)
Startprint initializes the printer and displays a window that shows the printer's
progress. Drawtext copies some text to the printer, moving down to the next line if text
ends with a new line character (the NL character). You could call any drawing routines here, such
as Drawpicture etc, but this program keeps to printing text for now. Finally Endprint
closes the printer and removes the printer progress window.
As you can see from the code, function Printme works by calling Startprint, then
sets a more interesting font which is Times New Roman 14 point italic, then sets up a loop to get
each line of the string and calls Drawtext. When Printme has looped through all the
lines in the text string, it calls Endprint. You could easily include Printme in
other programs as a handy routine for printing text.
The printer used by Printme is Sysprinter, which is the system default printer.
This is set up under Windows by Start - Settings - Printers, then right-clicking on the printer you
want to use as the default.
Moving on to function main, this uses Openfiledialog to choose the text file to
print. If this text file exists and contains some text, main calls Printme to print
the text. If no text file was chosen, or if Cancel was pressed in the Open file dialog, the
programs ends without printing anything.
3. How do I print different fonts on a line?
Use Drawtext without appending a NL character. In that way you do not move to a new line
after printing the text. For example:
call Startprint(Sysprinter)
call Drawtext(Sysprinter, "To ")
call SetFontbold(Sysprinter, True)
call Drawtext(Sysprinter, "boldly ")
call SetFontbold(Sysprinter, False)
call Drawtext(Sysprinter, "go")
call Endprint(Sysprinter)
will print the following:
To boldly go
You can change the font name, the font size, the bold and italic state and the color, all on the
same line.
|