• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 429
  • Last Modified:

Accessing default printer font

This seems a bit silly, but I can't get it to work.

How do I print using the default printer font? Whenever I print using Delphi, it switches to the default windows printer font, or the font I set it to in the printer.canvas.font method, etc. Even when I use the assignprn(textfile) method, it switches the font... All I want is a dump in the default printer font.

The reason? The default font uses the old PC-8 character set. I'm trying to use an old piece of code that has boxes around the text for a report. Setting the printer.font and printer.charset doesn't seem to work. I can set the charset to ansi, but not to the old IBM PC-8 characterset, even though the printer has that set.
0
oneeye
Asked:
oneeye
1 Solution
 
ronit051397Commented:
This is from Borland documents
http://www.inprise.com/devsupport/delphi/qanda/808.html

Question:

Instead of printing graphics, how can I get TPrinter to use the default resident font in the printer?

            Answer:

            Use the Windows API function GetStockObject() to retrieve the
            device default font handle, and assign it to Printer.Font.Handle.

            Example:

            uses Printers;

            procedure TForm1.Button1Click(Sender: TObject);
            var
              tm : TTextMetric;
              i : integer;
            begin
              if PrintDialog1.Execute then begin
                Printer.BeginDoc;
                Printer.Canvas.Font.Handle := GetStockObject(DEVICE_DEFAULT_FONT);
                GetTextMetrics(Printer.Canvas.Handle, tm);
                for i := 1 to 10 do begin
                  Printer.Canvas.TextOut(100,
                                         i * tm.tmHeight +
                                         tm.tmExternalLeading,
                                         'Test');
                end;
                Printer.EndDoc;
              end;
            end;


0
 
oneeyeAuthor Commented:
Ah, very good. One place I forgot to check.

I am much obliged.
0

Featured Post

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now