Home General
New Blog Posts: Merging Reports - Part 1 and Part 2

Dot Matrix Printers

edited June 2001 in General
Hello Digital Metaphors:

We print on pre-printed custom reports using dot matrix printers. Some
of these reports exceed 26 inches. This is no problem so long as the printer
driver supports custom sizes this large.

We have a large customer who wants us to support a dot matrix printer
( Lexmark ) with a max size of 18 inches.

Are there any options for us to accomplish this on those 24 inch long
reports ???

The tech tips suggests using a generix text printer driver set at 1/6
inch intervals. Is this our only option ???

Is it possible to employ somebody to modify a printer driver ??? Is that
possible or practical ??? Any ideas would be appreciated.

Also, we are running into issues in Windows 2000. WIndows 2000 requires
different drivers than 9x and NT. Many of the new drivers coming out have
reduced the supported custom paper length down to 17 inches max ( Okidata
for instance ). We are concerned that future windows platforms will make it
almost impossible for us to support our customers needs for long pre-printed
reports.


Thanks for your help.



Sincerely,


Neil Huhta
Profit Monster Data Systems LLC

Comments

  • edited June 2001
    ---------------------------------------------
    Article: Custom Paper Sizes on Windows NT
    ---------------------------------------------

    Win NT (and Win 2000) have a completely different printing architecture
    from Win 9x. This is particularly apparent when it comes to custom paper
    sizes.

    Windows NT handles paper sizes via Forms that are defined at the
    operating system level.

    1. Open the Windows NT printer panel
    2. Select File | Server Properties. The Print Server Properties dialog
    is displayed.
    3. From this dialog you can view all of the Forms currently defined for
    your machine.

    There are basic forms installed by the operating system. Additional
    forms may be added by printer driver installations or applications.

    ReportBuilder defines a Custom paper size as one that is NOT already
    defined and known to the printer driver. There are Win API calls
    ReportBuilder uses to retrieve a list of available paper sizes known to
    the printer driver.

    When printing a report, ReportBuilder first tries to find a pre-defined
    paper size it can use - one that matches the paper dimensions of the
    report. If it cannot find one, then it uses a Win API call to add/modify
    a Form named 'Custom'.

    Security Issues:
    ----------------

    Each printer installed to Win NT has security rights associated with it.

    1. Open the Windows Printer panel
    2. Select the printer icon for the printer
    3. Press the right mouse button to display the popup menu and select
    Properties.
    4. From the properties dialog select the Security tab
    5. From the Security tab, press the Permissions button
    6. A list of user groups and their associated rights will be displayed.
    7. The rights are: No Access, Print, Manage Documents, Full Control.

    *** A group must have at Manage Documents or Full Control in order to
    update forms.

    By default Administrators have full control. However Users by default
    have only Print rights.


    General Troubleshooting Tips:
    ------------------------------

    1. To test paper sizes you can run demo 121 in the main reports demo
    app.
    This demo displays a printer settings dialog and is very useful for
    testing printer drivers with various paper sizes.

    To test a paper size:

    a. Selecting the printer
    b. Specify the paper size
    c. press preview
    d. Press print to display the print dialog.
    e. From the print dialog press the Properties button to display the
    printer driver's built-in dialog. You should be able to verify the
    printer setting from here.

    These are the values communicated by RB to the printer. If
    these are set correctly then RB has done its job, the rest is up to the
    printer.

    2. Open the Windows printers panel. Select File | Server Properties. The
    Print Server Properties dialog is displayed. Select the Form named
    'Custom' and check that its dimensions are set to the correct values for
    your report.

    3. Try printing to this same paper size using other apps such
    as MS Excel and MS Word. If they cannot do it, then it is likely
    a limitation of the printer.

    4. Try downloading the latest printer driver from the manufacturers
    web site.

    5. Try testing with another printer.

    If test number 1 above works properly then e-mail
    support@digital-metaphors.com with the exact configuration
    you are using: Delphi version, ReportBuilder version,
    OS (NT4.0, Win95, Win98), and printer model.




    Cheers,

    Jim Bennett
    Digital Metaphors


  • edited June 2001
    Jim:

    Thanks for the information on how ReportBuilder and Windows 2000 work
    together. However, my original questions remain unanswered as follows. I
    don't need definite answers, but if you guys could point me out in the right
    direction, that would be appreciated.

    Are there any options for us to accomplish this on those 24 inch long
    reports if a windows driver does not support that length ???

    The tech tips suggests using a generix text printer driver set at 1/6
    inch intervals. Is this our only option ???

    Is it possible to employ somebody to modify a printer driver ??? Is
    that possible or practical ??? Any ideas would be appreciated.



    Neil Huhta
    Profit Monster Data Systems LLC
  • edited June 2001
    If the driver does not support a custom paper size, then you could print to
    a (non-graphical) report emulation text file and then send that to the
    printer.


    -----------------------------------------------
    Tech Tip: Send TextFile to Printer
    -----------------------------------------------

    I designed a application that exports the report to a .txt
    file using ReportTextFile device.

    How can I Send the text file to the printer?

    The following procedure will send the .txt file to
    the printer using Delphi's TPrinter object.



    uses
    Printers;


    procedure SendTextFileToPrinter(aFileName: String);
    var
    lsLines: TStringList;
    lOutputFile: TextFile;
    liIndex: Integer;
    begin

    lsLines := TStringList.Create;

    try
    lsLines.LoadFromFile(aFileName);

    AssignPrn(lOutputFile);
    Rewrite(lOutputFile);

    for liIndex := 0 to lsLines.Count-1 do
    Writeln(lOutputFile, lsLines[liIndex]);

    CloseFile(lOutputFile);

    finally
    lsLines.Free;
    end;


    end;


    Cheers,

    Jim Bennett
    Digital Metaphors


  • edited June 2001
    Jim:

    Thanks again for the input. However, I still would like an answer to the
    following specific questions:

    Is it possible to employ somebody to modify a printer driver ??? Is
    that possible or practical ???

    Are there any options for us to accomplish this on those 24 inch long
    reports if a windows driver does not support that length ???

    The tech tips suggests using a generix text printer driver set at 1/6
    inch intervals. Is this our only option ???



    Neil Huhta
  • edited June 2001
    Jim:

    How do I print to a "(non-graphical) report emulation Text file" ??? Is
    this done by setting the report properties to send output to a text file and
    then calling the ppreport.print method ???

    Also, does this require adherence to the 1/6 inch placement ???


    Thanks


    Neil Huhta
  • edited June 2001
    Sorry for my reluctance on responding to your question. We have not
    modified print drivers and we are not claiming to be experts on this. It
    may be possible, but modifying a print driver appears to be difficult, to
    say the least. I was hoping that someone else has had a similar experience,
    found enlightenment, and is willing to share the solution.

    I would try using the generic text driver first, and if that doesn't work,
    then use the report emulation text file and send the text file to the
    printer. Those are the best two options at this point.


    Cheers,

    Jim Bennett
    Digital Metaphors


  • edited June 2001
    Non-graphical means that only the text in the report is sent to the report
    emulation text file. The Report.DeviceType property can be set to
    dtReportTextFile. Set Report.AllowPrintToFile to true. Set the
    Report.TextFileName. Calling print will send it to the file.

    See demo 107 in the main reports demo project. I would recommend using the
    1/6 inch placement, to ensure the correct mapping of the text to the
    character grid.


    Cheers,

    Jim Bennett
    Digital Metaphors


This discussion has been closed.