Как получить "готовые к принтеру байты" из источника в c #? - PullRequest
1 голос
/ 02 июня 2010

У меня тут немного неприятностей, надеюсь, вы поможете коллеге-программисту.

У меня есть приложение, которое получает указатель на необработанные байты (плюс длина и прочее) и отправляет указанные необработанные данные на принтер. Это важно, у меня нет другого выбора, кроме как использовать этот метод для печати. ​​

Если я отправлю необработанную строку, она будет напечатана без проблем. Тем не менее, мне нужно иметь возможность печатать форматированный текст, изображения и т. Д. Итак, дело в том ... Я хотел бы иметь возможность получать готовые байты принтера из заданного источника (возможно, PDF или HTML, не имеет значения, так как Пока он содержит форматированный текст и / или изображения). Это было бы похоже на «разделение» команды печати следующим образом:

а) Открыть файл и прочитать данные б) Загрузить данные принтера в память c) Отправить байты на принтер

Очевидно, у меня есть а) и в), это б) тот, который разбил мне голову.

Есть мысли?

Заранее спасибо за помощь.

1 Ответ

1 голос
/ 02 июня 2010

Вам необходим процессор принтера для получения команды печати и создания отформатированных данных. Надеюсь, вы не захотите делать это самостоятельно (форматирование в готовые к печати данные, даже если вы знаете PS, AFP, PCL или то, чем они сейчас являются наизусть, очень тяжело и месяцами работают). Вместо этого следует использовать процессор принтера Windows.

Если вы работаете в Windows (я полагаю, потому что вы используете C #, но, возможно, вы используете Mono), вы можете отправить любую команду принтера в файл (просто используйте порт FILE:). Чтобы создать отформатированные данные, используйте любую имеющуюся у вас библиотеку PDF или используйте RTF, который поддерживается .NET Framework, и отправьте его на выбранный принтер (который должен соответствовать тому же принтеру, что и на другом конце вашего приложения), который настроен на порт FILE :.

Необработанные данные печати затем сохраняются на диске, который вы можете просто прочитать в виде байтового массива и отправить на ваш реальный принтер, используя приложение, которое вы уже получили.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...