Отправка факсов через .NET

Я пытаюсь отправлять факсы с помощью программы .NET (C #), используя Crystal Reports и Unimessage Pro (или любую другую программу для отправки факсов).

Моя проблема в том, что Unimessage Pro (и другие программы для работы с факсом) используют шрифты принтера для команд факса. Поскольку .NET не поддерживает шрифты принтера, команды факса в отчете преобразуются в Courier New. В результате программа факса не распознает команды факса, но видит их как обычный текст, и факс не отправляется.

Как отправить факс с помощью Crystal Reports и .NET?


person Jonas Rindberg    schedule 13.02.2009    source источник
comment
«использует шрифты принтера для команд факса» как шрифт может быть командой?   -  person Autodidact    schedule 13.02.2009
comment
Я думаю, он имеет в виду, что использует специальный резидентный шрифт принтера. Таким образом, это приравнивается к команде PCL или последовательности выхода, и то, что вы вызываете специальный шрифт, за которым следует номер факса ... может быть неправильным, но это то, что я понял.   -  person Douglas Anderson    schedule 17.02.2009
comment
Использование шрифтов принтера для команд факса не означает, что шрифт - это команда. Это означает, что он использует шрифты принтера (в данном случае, я думаю, фактически встроенные шрифты факса) при выполнении команд факса.   -  person bzlm    schedule 19.02.2009


Ответы (3)


Я получил этот ответ от WordCraft (компании, стоящей за Unimessage Pro)

  1. Создайте файл с именем WilCapAX.INI в основной папке Windows, например 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), а затем повторите, если необходимо.

Это решило проблему! :)

person Jonas Rindberg    schedule 05.03.2009

Клиентская консоль 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 "Сэм Кивин ‹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 Server на 5 пользователей" -f D: \ Sell.xls -r "Kivin ‹866-6554-564>"

person Nicole 4v    schedule 25.09.2012
comment
Вы связаны с этим продуктом? - person Austin Henley; 25.09.2012

Когда вы говорите, что использует шрифты принтера, я предполагаю, что вам нужно отправить некоторые PCL (или аналогичные) команды, такие как:

<esc>(s..... 

Если это так, я не думаю, что вы можете встроить это напрямую с помощью Crystal.

В прошлом нам приходилось отправлять специальные последовательности через Crystal (без Escape), в этих случаях мы создаем новое поле Formula и не меняем никаких элементов, кроме шрифта (выберите Courier). Эти элементы должны передаваться прямо на принтер, но драйвер не должен их слишком сильно преобразовывать. Это может; Однако это не решит вашу проблему.

Другой вариант, который должен работать, - это создать собственный драйвер принтера с помощью Microsoft Driver Development Kit. Вы можете создать свой собственный мини-драйвер и связать шрифт с определенным вызовом шрифта, чтобы при указании этого шрифта код был правильно вставлен в ваш код.

Вы также можете обработать это так же, как мы (не с Crystal, но и с другой подобной отчетностью). Мы используем RightFax в качестве нашего факс-сервера, и он позволяет «прикреплять» файлы через файл метаданных. Мы генерируем отчет, помещаем его в определенное место в виде PDF-файла или другого формата, а затем передаем RightFax файл метаданных, который содержит номер факса получателя и команду, которая сообщает ему прикрепить файл к файловой системе.

Прикрепленный файл RightFax выглядит примерно так:

{{begin}}
{{nocover}}
{{fax (403) 555-1212}}
{{subject Test Fax}}
{{attach c:\reports\report1.pdf delete}}
{{imagetype pdf}}
{{end}}
person Douglas Anderson    schedule 13.02.2009