在citrix服务器上打印 [英] Printing on citrix server

查看:117
本文介绍了在citrix服务器上打印的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我们正在使用Delphi 7开发具有后端优势的数据库应用程序.我们的系统通常以PC作为终端安装在Windows服务器上.所有设置和数据库都在服务器上.
我们在Citrix服务器上运行软件时遇到问题.特别是印刷似乎是一个问题.选择正确的打印机和报告格式都可以. 我们使用Rbuilder版本10生成报告,然后将报告发送到斑马标签打印机,而不是标准Windows打印机驱动程序.报告的大小也非标准. 我们看到的事情是页面上报告的拉伸和移动.
有没有人看到过类似的行为或对可能导致此问题的原因有任何了解.
我们没有测试Citrix系统,因此很难进行测试.我们无法在正常的Windows环境中复制它.

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.

推荐答案

在Citrix(和Microsoft终端服务器)上,打印机通常在应用程序启动后被连接".这会导致在Reportbuilder打印机列表中已插入可能要打印的打印机.

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.

当打印机使用以下代码更改时,我们通过强制ReportBuilder刷新列表来解决此问题(附加到Application.OnSettingChange)

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;

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.

这篇关于在citrix服务器上打印的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆