Search code examples
delphilabelcitrixreportbuilderzebra-printers

Printing on citrix server


We are using Delphi 7 to develop database apps with advantage as a backend. Our system is usually installed on the windows server with the pcs acting as terminals. All the settings and database are on the server.
we are having problems running our software on Citrix servers. In particular printing seems to be an issue. Both in selecting the right printer and in the formatting of the report. We use Rbuilder version 10 to produce our reports and they are sent to a zebra label printer so not a standard windows printer driver. The reports are also of a non-standard size. things we are seeing are stretching and shifting of the report on the page.
Has anybody seen similar behavior or has any idea of what might be causing this.
we don't have a test Citrix system so it is hard to test. We can't replicate it in a normal windows environment.


Solution

  • On Citrix (and Microsoft Terminal Server), printers often gets "attached" after the application starts. This causes that the printer that might be nedded isent in the Reportbuilder printer list.

    We have solved the problem by forcing ReportBuilder to refresh the list, when printers change using the following code (Attached to Application.OnSettingChange)

    procedure TMainForm.ApplicationEventsSettingChange(Sender: TObject;
    Flag: Integer; const Section: string; var Result: Integer);
    begin
    if uppercase(Section) = 'DEVICES' then
    begin
    ppPrintr.ppPrinters.Refresh;
    end;
    end;

    Hope it solves your problem.