在 Citrix 服务器上打印
我们使用 Delphi 7 来开发数据库应用程序,作为后端具有优势。我们的系统通常安装在windows服务器上,PC机作为终端。所有设置和数据库都在服务器上。
我们在 Citrix 服务器上运行我们的软件时遇到问题。特别是打印似乎是一个问题。无论是选择正确的打印机还是报告的格式。 我们使用 Rbuilder 版本 10 来生成报告,并将它们发送到 Zebra 标签打印机,而不是标准的 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.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
在 Citrix(和 Microsoft 终端服务器)上,打印机通常会在应用程序启动后“连接”。这会导致可能需要的打印机出现在 Reportbuilder 打印机列表中。
当打印机使用以下代码(附加到 Application.OnSettingChange)更改时,我们通过强制 ReportBuilder 刷新列表来解决该问题
procedure TMainForm.ApplicationEventsSettingChange(Sender: TObject;
标志:整数; const 部分:字符串; var 结果:整数);
开始
如果大写(部分)= 'DEVICES' 则
开始
ppPrintr.ppPrinters.Refresh;
结束;
end;
希望它能解决您的问题。
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.
看一下这个链接,你可以得到评估版,但您也可以下载其中包含完整 Citrix 安装的虚拟机。顺便说一句,该产品现在称为 XenApp。
Take a look at this link, you can get an evaluation version but you can also download virtual machines with complete citrix installation in it. Btw the product is called XenApp nowadays.
根据我的经验,Citrix 打印是一场噩梦。
您需要确保要使用的打印机作为本地打印机安装在 Citrix 服务器上,然后禁止应用程序使用客户端打印机。这应该有助于正确设置打印机。
基本上,您需要确保可以从服务器控制台正确运行应用程序,然后尝试将其用作 Citrix 应用程序。
祝你好运。
In my experience, Citrix printing is a nightmare.
You'll want to make sure the printer you want to use is installed as a local printer on the Citrix server, then disallow use of client printers for the application. That should help getting the printer right.
Basically, you'll want to make sure you can run the application properly from the server console, then try to use it as a Citrix app.
Good luck.