1

我正在尝试使用 Crystal Reports 和 Unimessage Pro(或任何其他传真程序)通过 .NET (C#) 程序发送传真。

我的问题是 Unimessage Pro(和其他传真程序)将打印机字体用于传真命令。由于 .NET 不支持打印机字体,因此报告中的传真命令将转换为 Courier New。这样做的结果是传真程序无法识别传真命令,而是将它们视为纯文本并且传真没有发送。

如何使用 Crystal Reports 和 .NET 发送传真?

4

3 回答 3

3

我从 WordCraft(Unimessage Pro 背后的公司)得到了这个答案

  1. 在 Windows 主文件夹中创建一个名为 WilCapAX.INI 的文件,例如 C:\Windows\WilCapAX.INI 该文件应包含以下内容: [WilCapAX] Commands=C:\Commands.DAT 其中“C:\Commands.DAT”为您将在 .NET 应用程序中创建的文本文件的名称,以将
    嵌入式命令传递给 Unimessage Pro。如有必要,您可以编辑路径,但请保留简短的文件和
    文件夹名称。

  2. 在您的 .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 打印机处理),然后根据需要重复。

这解决了问题!:)

于 2009-03-05T21:29:21.630 回答
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.

返回:

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 销售表" -m "Joyfax 服务器 5 用户许可证" -f D:\Sell.xls -r "Kivin<866-6554-564>"

于 2012-09-25T00:07:42.970 回答
0

当您说使用打印机字体时,我假设您需要发送一些 PCL(或类似)命令,例如:

<esc>(s..... 

如果是这种情况,我认为您不能直接将其嵌入到 Crystal 中。

过去我们不得不通过 Crystal 发送特殊序列(没有 Escape),在这些情况下,我们创建一个新的公式框并且不更改除字体之外的任何元素(选择 Courier)。这些元素应该直接传递给打印机,而不会被驱动程序转换太多。这可能; 但是,不能解决您的问题。

另一个可行的选择是使用 Microsoft 的驱动程序开发工具包构建您自己的打印机驱动程序。您可以创建自己的迷你驱动程序并将字体与特定的字体调用相关联,因此当您指定该字体时,您可以将代码正确插入到您的代码中。

您也可以按照我们的方式处理此问题(不是使用 Crystal,也可以使用其他类似的报告)。我们使用 RightFax 作为我们的传真服务器,它允许通过元数据文件“附加”文件。我们生成报告,将其以 PDF 或其他格式放入特定位置,然后向 RightFax 传递一个元数据文件,其中包含收件人的传真号码和一个命令,告诉它将文件附加到文件系统上。

RightFax 的“附加”文件如下所示:

{{begin}}
{{nocover}}
{{fax (403) 555-1212}}
{{subject Test Fax}}
{{attach c:\reports\report1.pdf delete}}
{{imagetype pdf}}
{{end}}
于 2009-02-13T15:54:02.873 回答