我正在尝试向公司的RightFax服务器发送ActiveReports格式的报告,并预先设置了一些传真字段,如传真号码、发件人和收件人。RightFax文档指出,文档必须包含用于设置这些值的嵌入式代码,例如<TOFAXNUM:12345556789><TONAME:Recipient><FROMNAME:Sender>。我在ActiveReports中创建了一个包含此文本的TextBox或标签。但是,当RightFax接收到文档并打开RightFax客户端UI时,不会设置这些值。嵌入的代码保留在传真图像中。我将RightFax打印机驱动程序设置为HP LaserJet 4。我使用Visual Studio2010专业版在C#中进行开发。
网络上的一个建议是确保嵌入的代码设置为Courier或另一种“打印机字体”。但是,Visual Studio没有"Courier“或"Times Roman",只有MS true type版本的这些标准字体,"Courier New”和"Times New Roman“。
这种发送传真的方法是在另一台使用相同RightFax服务器的机器上使用不使用ActiveReports的旧软件。
如果您能分享将ActiveReports连接到RightFax的任何经验,我们将不胜感激。
谢谢,
格雷格·洛贝尔
发布于 2013-01-15 14:00:04
您可以通过控制整个打印过程并使用Windows API发送转义序列来完成任务。我假定您使用的是ActiveReports 7的ActiveReports 6或基于节的报表。
更详细地说:
来显示页面本身的示例
发布于 2013-01-24 05:49:29
只要您使用的是true type字体,打印机就应该能够识别该字体并能够“读取”其中的文本。只有旧的位图字体才是打印机可能无法读取的字体。通常在windows上常用的TT字体,如"Courier New“或"Times New Roman",已经在打印机中,所以它们甚至不会被下载。
但是,您可能希望尝试在ActiveReports中使用转义代码。此外,here是使用ActiveReports6中的SystemPrinter对象将转义代码直接发送到打印机的示例,而无需使用任何特殊的API。您可以尝试使用该代码,并将其中的转义代码替换为RightFax能够理解的代码。
最后,ActiveReports本质上是通过从打印机获取图形并在其上绘图来进行打印。文本框是使用适当的文本命令绘制的真实文本(即文本不呈现为位图)。这是现代windows中的一种常规打印方式,因此任何打印机都应将文本视为普通文本。通过用.NET编写自己的简单打印代码并将其发送到RightFax驱动程序,您应该可以看到相同的结果。如果它在那里工作,那么它也会在ActiveReports中工作。
希望这能有所帮助!
https://stackoverflow.com/questions/14329919
复制相似问题