Delphi 在citrix服务器上打印

Delphi 在citrix服务器上打印,delphi,label,citrix,reportbuilder,zebra-printers,Delphi,Label,Citrix,Reportbuilder,Zebra Printers,我们使用Delphi7开发数据库应用程序,并将advantage作为后端。我们的系统通常安装在windows服务器上,PC作为终端。所有设置和数据库都在服务器上。 我们在Citrix服务器上运行软件时遇到问题。特别是印刷似乎是一个问题。选择正确的打印机和报告的格式。 我们使用Rbuilder版本10生成报告,并将其发送到zebra标签打印机,因此不是标准的windows打印机驱动程序。这些报告也是非标准大小的。 我们所看到的东西正在延伸和改变页面上的报告。 有没有人见过类似的行为,或者知道是什么

我们使用Delphi7开发数据库应用程序,并将advantage作为后端。我们的系统通常安装在windows服务器上,PC作为终端。所有设置和数据库都在服务器上。
我们在Citrix服务器上运行软件时遇到问题。特别是印刷似乎是一个问题。选择正确的打印机和报告的格式。 我们使用Rbuilder版本10生成报告,并将其发送到zebra标签打印机,因此不是标准的windows打印机驱动程序。这些报告也是非标准大小的。 我们所看到的东西正在延伸和改变页面上的报告。
有没有人见过类似的行为,或者知道是什么导致了这种情况。

我们没有测试Citrix系统,因此很难进行测试。我们无法在正常的windows环境中复制它。

看看这个,您可以获得评估版本,但也可以下载安装了完整citrix的虚拟机。顺便说一句,该产品现在被称为XenApp。

以我的经验,Citrix打印是一场噩梦

您需要确保要使用的打印机作为本地打印机安装在Citrix服务器上,然后禁止在应用程序中使用客户端打印机。这将有助于正确使用打印机

基本上,您需要确保可以从服务器控制台正确运行应用程序,然后尝试将其用作Citrix应用程序

祝你好运。

在Citrix(和Microsoft终端服务器)上,应用程序启动后,打印机通常会“连接”。这导致可能需要的打印机位于Reportbuilder打印机列表中

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

程序TMainForm.ApplicationEventSettingChange(发送方:ToObject;
标志:整数;常量部分:字符串;变量结果:整数)
开始
如果大写(部分)=“设备”,则
开始
ppPrintr.ppPrinters.Refresh
结束
结束


希望它能解决您的问题。

@DelphiGirl-欢迎使用堆栈溢出。在新行的末尾使用两个空格。奇怪但确实如此……我无法直接帮助,但当我有一个Citrix的大客户时,Citrix向我发送了一套安装CD,用于测试。我认为这是一个60天的试用期,但它让我能够正常试用。我们正在考虑在citrix上测试我们的软件。谢谢你的提示。这个打印问题解决了吗?这似乎很方便,解决了citrix打印机的部分问题。将明确地将其添加到我的代码中。然而,它并不能解决我们所看到的格式问题。基本上,标签被拉伸到比我们在报告中设置的大得多的尺寸。它不会影响每个登录或每个应用程序。拉伸效应似乎是随机的。打印机驱动程序或本地/网络打印机设置是否会覆盖报告格式中的页面大小设置。