Open Lpt
 
Открывает устройство принтера

Синтаксис

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:..." . Этот синтаксис , используемый в других диалектах, откроет обычный файл.

См. также