Открывает устройство принтера
Синтаксис
Open Lpt ["[LPT[x]:][Printer_Name][,TITLE=Doc_Title][,EMU=TTY]"] [For Input|Output] As #filenum
Использование
Open Lpt "LPT..." As [#]filenum
или
result = Open Lpt( "LPT..." As [#]filenum )
Параметры
x
Указывает номер порта. Если он опущен, вывод направляется
в системную очередь печати принтера.
Printer_Name
Имя принтера для открытия. Этот параметр игнорируется в
DOS.
TITLE=Doc_Title
Название задания печати, как видно спулером принтера.
Этот параметр игнорируется в DOS.
EMU=TTY
Эмуляция TTY вывода на принтере GDI windows, с
использованием драйвера визуализации текста. Этот параметр игнорируется в
DOS и Linux.
For Input|Output
предложение допускается для совместимости, но оно
игнорируется.
filenum
Неиспользуемый(свободный) номер файла для назначения
устройства.
Return Value
0 is returned if Open Lpt completed successfully, otherwise a non-zero value is returned to indicate failure.
Description
Open Lpt открывает соединение с устройством принтера. Соединение
рассматривается как файл, так что данные могут быть записаны на принтер с
помощью команд
Print и
Put #.
Любой принтер, подключенный к системе может быть открыт с помощью
Open Lpt
Open Lpt "LPT:" ... будет пытаться открыть принтер по умолчанию
на Windows, и Linux, и
"LPT1:" на DOS.
LPrint автоматически попытается открыть
принтер по умолчанию на Windows и Linux, и
"LPT1:" на DOS.
Специфичные замечания для платформ:
Windows
Аргумент EMU=TTY предполагает печать ASCII или Unicode
текст, и применяет драйвер текстового изображения принтера на ввод. EMU=TTY
также позволяет использование CR, LF, BS, TAB, FF, и т.п., для виртуального
движения печатающей головки ... даже когда принтер является GDI принтером и,
следовательно, сам по себе не понимает эти специальные символы. Если ",EMU=TTY"
опущен, данные должны быть отправлены на языке принтера (ESC/P, HPGL, PostScript,
и т.п...). Другие полезные режимы эмуляции, пока не поддерживаются.
Linux
Спулер принтера доступен через lp , должен быть
установлен для принтеров доступ по имени или принтер по умолчанию. Доступ к
спулеру был протестирован только с CUPS, но другие спулеры могут работать, с
помощью вызова через lp. Порт начинается с нуля на Linux. "LPT1:"
соответствует "/dev/lp0".
Данные должны быть отправлены на языке принтера (ESC/P, HPGL, PostScript, и
т.д. ..). Режимы эмуляции пока не поддерживаются.
DOS
FreeBASIC не поддерживает спулерную печать на DOS.
Принтеры должны быть доступны через "LPTx:".
Данные должны быть отправлены на языке принтера (ESC/P, HPGL, PostScript, и
т.д. ..). Режимы эмуляции пока не поддерживаются.
Пример
' Отправить текст на принтер для Windows на LPT1:,
используя драйвер текстового изображения.
Open Lpt "LPT1:EMU=TTY" For Output As #1
Print #1, "Testing!"
Close
' Отправляет содержимое текстового файла test.txt на
принтер в Windows с именем "ReceiptPrinter"
Dim RptInput As String
Dim PrintFileNum As Integer, RptFileFileNum As Integer
RptFileFileNum = FreeFile
Open "test.txt" For Input As #RptFileFileNum
PrintFileNum = FreeFile
Open Lpt "LPT:ReceiptPrinter,TITLE=ReceiptWinTitle,EMU=TTY" As _
#PrintFilenum
While (EOF(RptFileFileNum) = 0)
Line Input #RptFileFileNum, RptInput
Print #PrintFileNum, RptInput
Wend
Close #PrintFileNum ' Интересно,
что не требуется CHR(12). Но если нумерация страниц желательна, CHR(12) поможет.
Close #RptFileFileNum
Print "Press any key to end program..."
GetKey
End
'Эта простая программа распечатает
файл PostScript в PostScript-совместимом принтере.
Dim As UByte FFI, PPO
Dim As String temp
FFI = FreeFile()
Open "sample.ps" For Input Access Read As #FFI
PPO = FreeFile()
Open Lpt "LPT1:" For Output As #PPO
While (EOF(FFI) = 0)
Line Input #FFI, temp
Print #PPO, temp
Wend
Close #FFI
Close #PPO
Print "Printing Completed!"
Различия диалектов
- В диалекте -lang qb
поддерживается старый синтаксис OPEN "LPT:..." . Этот синтаксис ,
используемый в других диалектах, откроет обычный файл.
См. также