Если я правильно понимаю, принтер также является файлом с точки зрения операционной системы. Могу ли я получить тип .NET C# FileStream для принтера? Кажется, это дико. Спасибо заранее.Можем ли мы получить FileStream для принтера?
ответ
Принтер моделируется в Win32 как набор растровых изображений. Это обернуто PrintDocument
, которое в основном устанавливает обратный вызов, который позволяет рисовать каждую страницу по отдельности и отправлять их по очереди буферизу печати, который затем отправляет данные (обычно в формате .ps) на принтер.
Как работают современные принтеры, они рисуют страницы, а не текст. Только старые школьные матричные принтеры рисовали текст по характеру, по-потоковому. Они использовали специальный файл PRN:. Однако это потеряло всякий смысл в современной среде.
Хорошей новостью является то, что с классом PrintDocument
очень легко работать, вы получаете объект Graphics
для каждой страницы, который вы можете использовать для печати текста в любом месте страницы, а также для рисования графики.
Вы можете имитировать потоковый принтер, если хотите, кэшируя все данные, а затем просто вызываете DrawText
для каждой страницы.
Построение Windows Forms
приложения, вы можете думать о принтере в качестве имен Graphics Device.
System.Drawing.Printing
предоставляет услуги печати, связанные для приложений Windows Forms.
Если вы хотите распечатать приложение Windows Presentation Foundation (WPF)
, см. Пространство имен System.Printing
. Он предоставляет классы, которые позволяют автоматизировать управление серверами печати, очередями печати и заданиями печати.
Предполагая, что вы хотите отправить исходные данные на принтер, пожалуйста, см How to send raw data to a printer by using Visual C# .NET
С .Net 3.0 вы можете, используя PrintSystemJobInfo.JobStream
При создании PrintJob в спулере, например,
var job = LocalPrinter.GetDefaultQueue().AddJob();
Вы можете написать в
job.JobStream
Закрытие этого потока очереди его на печать. Интересно, что можно использовать этот поток для записи управляющих кодов и текста общего/текста только принтера (например, LPT1 принтера влияние параллельного порта)
- 1. Можем ли мы изменить настройки принтера с помощью jquery?
- 2. Можем ли мы получить XPATH для NODE
- 3. Можем ли мы получить настоящее обещание тогда?
- 4. Можем ли мы получить элементы внутри iframe?
- 5. Можем ли мы получить личность делегата?
- 6. Можем ли мы получить имя UILabel?
- 7. Можем ли мы поймать UnsupportedOperationException
- 8. Можем ли мы получить спортивное мероприятие для яблочных часов?
- 9. Можем ли мы получить время для каждой ревизии в couchdb
- 10. Можем ли мы назначить даты для UIDatePicker
- 11. Можем ли мы написать плагин для JVM
- 12. Можем ли мы использовать таймер для себя?
- 13. Можем ли мы создать таблицу для wordpress?
- 14. Можем ли мы использовать MVVMLight для Xamarin
- 15. Можем ли мы анимировать видимость?
- 16. Можем ли мы отключить MouseEvents?
- 17. Можем ли мы клонировать WebView?
- 18. можем ли мы перезагрузить UIView?
- 19. Можем ли мы перегружать malloc()?
- 20. Можем ли мы отключить финализаторы?
- 21. Можем ли мы повернуть страницу?
- 22. Можем ли мы сделать группы в перечислении?
- 23. Можем ли мы сделать тихое обновление для приложения для Android?
- 24. Можем ли мы тайм-команды детерминистически?
- 25. Можем ли мы использовать refreshToken долгое время?
- 26. можем ли мы иметь sql без цикла?
- 27. Можем ли мы комбинировать теги git?
- 28. Можем ли мы добавить Модели в Layout.cshtml?
- 29. Можем ли мы создать последовательность в XSLT?
- 30. Можем ли мы получить статус вызова Ajax, как и 20%?