我正在尝试使用Crystal Reports和Unimessage Pro(或任何其他传真程序)使用.NET(C#)程序发送传真。
我的问题是Unimessage Pro(和其他传真程序)使用打印机字体作为传真命令。由于.NET不支持打印机字体,因此报告中的传真命令将转换为Courier New。结果是传真程序无法识别传真命令,但将其视为纯文本,并且未发送传真。
如何使用Crystal Reports和.NET发送传真?
答案 0 :(得分:3)
我从WordCraft(Unimessage Pro背后的公司)得到了这个答案
在主Windows文件夹中创建名为WilCapAX.INI的文件,例如: C:\ Windows \ WilCapAX.INI该文件 应包含以下内容: [WilCapAX] Commands = C:\ Commands.DAT其中“C:\ Commands.DAT”是其名称 您要创建的文本文件 在您的.NET应用程序中传递
嵌入式命令到Unimessage Pro。 您可以根据需要编辑路径, 但请保留简短文件和
文件夹名称。- 醇>
在您的.NET应用程序中,当您有通过
发送的内容时 Unimessage Pro您需要:2.1创建一个名为的文本文件,具体取决于定义的名称 在WilCapAX.INI中,C:\ Commands.DAT包含:
BLANK LINE [[TO=Fax Number or Email address]] [[SUBJECT=Whatever you want the subject to be]]
文件的第一行必须为空或包含 嵌入式命令以外的东西 - 它将是 跳过。 C:\ Commands.DAT文件中的其他行 每个都应包含一个嵌入式命令。
2.2将一条消息打印到Unimessage Pro打印机 - Unimessage Pro打印机接受打印作业并将 查找WilCapAX.INI中指定的文件。如果 WilCapAX.INI(C:\ Commands.DAT)中指定的文件是 发现,嵌入式命令是从中提取出来的 然后删除“C:\ Commands.DAT”文件 打印捕获与命令一起处理 从C:\ Commands.DAT文件中提取。
2.3等待C:\ Commands.DAT文件消失 (表明它已被处理过 Unimessage Pro打印机)然后根据需要重复。
这解决了这个问题! :)
答案 1 :(得分:1)
Joyfax客户端控制台1.0(测试版)
注意:在运行此应用程序之前,请先了解Joyfax Client v5.2或更高版本。
JoyfaxConsole [选项] -f [; ...] [; FileN] -r“”
-f file or folder Files or files in sub folders to be faxed.
i.e: C:\Test\;C:\MyPDFs\*.pdf
-r Recipients Recipient list. For more see Fax Recipients. Must begin and end with double quotation marks(").
选项:
-a Synchronous Wait until fax sent completed;
-s Subject Subject of fax, i.e.: "Joyfax Sell Sheet";
-m Meno Memo of fax, i.e.: "Joyfax Server 5-user license";
-c CoverPage Cover Page profile to be used;
-d Header Header & footer profile to be used,
0 = None; 1 = General; 2 = Compact; 3 = Detailed
-k Kill Delete input files if fax sent successfully.
Retrun:
0 - Success;
1 - Initialize failed;
2 - Invalid parameter;
3 - Unknown erorr (may unsupported file type).
示例:
JoyfaxClientConsole -d 2 -f“C:\ My PDFs \ D90.PDF”-r“Samm Kivin< 866-6554-564取代;先生。绿色≤(846)6554-564>“中
JoyfaxClientConsole -f C:\ MyPDFs * .pdf; D:\ Sell.xls -r“Samm Kivin< 866-6554-564>“中
JoyfaxClientConsole -s“Joyfax Sell Sheet”-m“Joyfax Server 5-user 许可证“-f D:\ Sell.xls -r”Kivin< 866-6554-564>“
答案 2 :(得分:0)
当你说使用打印机字体时,我假设你需要发送一些PCL(或类似)命令,例如:
<esc>(s.....
如果是这种情况,我认为你不能直接将其嵌入到Crystal中。
我们必须通过Crystal(没有Escape)发送特殊序列,在这些情况下,我们创建一个新的Formula框,不要更改除字体之外的任何元素(选择Courier)。这些元素应该直接传递给打印机,而不会被驱动程序转换太多。这可能;但是,不能解决你的问题。
应该使用的另一个选项是使用Microsoft的Driver Development Kit构建自己的打印机驱动程序。您可以创建自己的迷你驱动程序并将字体与特定字体调用相关联,因此当您指定该字体时,您可以正确地将代码插入到代码中。
您也可以按照我们的方式处理此问题(不是使用Crystal,而是使用其他类似的报告)。我们使用RightFax作为我们的传真服务器,它允许通过元数据文件“附加”文件。我们生成报告,将其作为PDF或其他格式放入特定位置,然后向RightFax传递一个元数据文件,其中包含收件人的传真号码和一个命令,告诉它将文件附加到文件系统上。
RightFax'adpend'文件看起来像这样:
{{begin}}
{{nocover}}
{{fax (403) 555-1212}}
{{subject Test Fax}}
{{attach c:\reports\report1.pdf delete}}
{{imagetype pdf}}
{{end}}