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

Printing problem

Hi,

I am using the following to send the info from a memo to the printer:

procedure TMainForm.PrintStrings(Strings: TStrings);    //sends the formula to the printer from the memo
var
  Prn: TextFile;
  i: word;
begin
  AssignPrn(Prn);
  try
    Rewrite(Prn);
    try
      for i := 0 to Strings.Count - 1 do
        writeln(Prn, Strings.Strings[i]);
    finally
      CloseFile(Prn);
    end;
   except
     on EInOutError do
       MessageDlg('Error Printing text.', mtError, [mbOk], 0);
  end;
end;

Open in new window


The problem is that the columns in the print don't line up like they do on the memo. Is there a way to tell the printer to use a non-proportional font ?
0
ChLa
Asked:
ChLa
1 Solution
 
Geert GruwezOracle dbaCommented:
Set the printer font to a font like Courier new before writing
Printer.Canvas.Font.Name:='Courier New';

You'll have to left-align your text with spaces

Or use BeginDoc
Write everything like you would on a bitmap canvas
you'll have to calculate the proper proportionings
and then do EndDoc

Here is a sample of both ways:
http://oldsite.adug.org.au/PastMeetings/Presentations/DonMacraeOct96/default.htm
1
 
ChLaAuthor Commented:
Thank you very much. Your answer helped me.
0

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

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