首页 文章

ActiveReports与RightFax的接口

提问于
浏览
0

我'm trying send ActiveReports formatted reports to my company'是RightFax服务器,并预先设置了一些传真字段,如传真号码,发件人和收件人 . RightFax文档说该文档必须包含嵌入代码来设置这些值,例如 <TOFAXNUM:12345556789><TONAME:Recipient><FROMNAME:Sender> . 我在ActiveReports中创建一个包含此文本的TextBox或Label . 但是,当RightFax收到文档并调出RightFax客户端UI时,不会设置这些值 . 嵌入代码保留在传真图像中 . 我将RightFax打印机驱动程序设置为HP LaserJet 4.我正在使用Visual Studio 2010 Professional在C#中进行开发 .

网上的一个建议是确保嵌入代码设置为Courier或其他“打印机字体” . 但是,Visual Studio没有“Courier”或“Times Roman”,只有这些标准字体的MS真实版本,“Courier New”和“Times New Roman” .

这种发送传真的方法是在使用相同RightFax服务器的另一台计算机上使用不使用ActiveReports的旧软件 .

您可以分享将ActiveReports与RightFax连接的任何经验 .

谢谢,

Gregg Lobdell

2 回答

  • 0

    您可以通过控制整个打印过程并使用Windows API发送转义序列来完成任务 . 我假设你使用ActiveReports 6或基于部分的ActiveReports 7报告 .

    更详细:

    • 创建自己的PrintDocument并定义PrintPage处理程序
      PrintPage处理程序中的

    • 使用Escape winapi调用将转义序列发送到打印机(请参阅CodeProject上的示例)

    • 通过调用Page.Draw()呈现页面本身

  • 0

    只要您使用真正的字体,打印机就应该识别该字体并能够“读取”其中的文本 . 只有旧的位图字体是打印机可能无法读取的字体 . 通常在Windows上使用的TT字体,如“Courier New”或“Times New Roman”,已经在打印机中,因此甚至不会下载它们 .

    但是,RightFax does have some documentation on escape codes here,因此您可能希望尝试使用带有ActiveReports的转义码 . 此外,here是使用ActiveReports6中的SystemPrinter对象将转义码直接发送到打印机而不使用任何特殊API的示例 . 您可以尝试使用该代码并使用RightFax可以理解的代码替换其中的转义码 .

    最后,ActiveReports主要通过从打印机获取图形并在其上绘图来进行打印 . 文本框是使用适当的文本命令绘制的真实文本(即文本不会呈现为位图) . 这是在现代窗口中打印的常规方式,因此任何打印机都应将文本视为普通文本 . 您应该通过在.NET中编写自己的简单打印代码并将其发送到RightFax驱动程序来看到相同的结果 . 如果它在那里工作,它将在ActiveReports中工作 .

    如果它不起作用,并且上面的转义码技巧不起作用,我认为联系RightFax并要求他们深入了解如何从.NET应用程序打印到他们的驱动程序将是下一个合乎逻辑的步骤 .

    希望这可以帮助!

相关问题