批处理不能打印正确的字体

时间:2012-02-10 00:17:29

标签: winforms printing

一个WinForms程序我开发的打印效果非常好,并且在作为交互式用户运行时也符合预期。使用相同的帐户但作为计划任务,该过程将正确运行,但它会以不正确的字体打印部分输出。

该程序是一个标签打印机,可打印更新的定价标签。它有一个任务调度程序调用的选项(-s),它不会显示GUI,但会进行更新和打印。通过运行作为交互式用户执行此操作正常工作(即使用正确的字体)。

有关这里发生的事情的任何线索?无法正确打印的字体是非标准系统字体。

这在服务器上运行,我认为这可能是由于打印机重定向,但我进行了控制台登录,它在控制台上作为交互式进程正常工作,就像通过远程桌面进行交互一样。

2 个答案:

答案 0 :(得分:0)

有趣的问题。据推测,Windows不会将字体加载到非交互式登录会话中以节省资源。

有关一种方法,请参阅this answer,使用 ps 工具在运行任务时创建交互式会话。

答案 1 :(得分:0)

我遇到了一个非常类似的问题(通过计划任务运行应用程序会使用默认字体,但在本地运行时会找到我安装的自定义字体),我找到了解决方案;在Server 2008上,存在一个问题,即在为非交互式用户安装后不会立即注册自定义字体,而普通用户(即在实际登录到计算机的用户上运行时)确实立即注册了字体。

对我有用的解决方案是简单地重新启动安装了字体的机器并且字体在非交互式帐户下开始工作,就像打开计算机时它正确注册一样。看起来字体安装有一个错误,即在重新启动之前它不会为非交互式用户正确注册字体。