Форум: "Основная";
Текущий архив: 2004.01.16;
Скачать: [xml.tar.bz2];
Вниз
Не выгонять лист после печати Найти похожие ветки
← →
sVic (2004-01-05 14:05) [0]Добрый день. Подскажите как напечатаь строку на принтере и при этом не выгонять лист.
Использую код:
Printer.BeginDoc;
Printer.Canvas.TextOut(1,1,"Строка 1");
Printer.EndDoc;
Строка печатается и следом выгоняется лист
Пробовал через AssignPrn - таже проблема.
← →
Zergling (2004-01-05 14:10) [1]Задай нужную длину страницы
procedure Tform1.SetPageSizes( APageLength, APageWidth : Integer);
var
hDeviceMode, ADeviceMode : THandle;
StubDevMode : TDeviceMode;
NewDevMode : ^TDeviceMode;
ADevice, ADriver, APort : array[0..255] of Char;
hPrinter : THandle;
begin
Printer.GetPrinter( ADevice, ADriver, APort, ADeviceMode);
if not OpenPrinter( ADevice, hPrinter, nil ) then
raise EPrinter.Create( SysErrorMessage( GetLastError ));
try
hDeviceMode := GlobalAlloc( GHND, DocumentProperties(
0, hPrinter,
ADevice, StubDevMode, StubDevMode, 0) );
NewDevMode := GlobalLock(hDeviceMode);
DocumentProperties( 0, hPrinter, ADevice, NewDevMode^,
NewDevMode^,
DM_OUT_BUFFER);
try
NewDevMode.dmFields := NewDevMode.dmFields or DM_PAPERSIZE or
DM_PAPERLENGTH or
DM_PAPERWIDTH;
NewDevMode.dmPaperSize := DMPAPER_USER;
NewDevMode.dmPaperLength := APageLength;
NewDevMode.dmPaperWidth := APageWidth;
DocumentProperties( 0, hPrinter, ADevice,
NewDevMode^, NewDevMode^,
DM_IN_BUFFER or DM_OUT_BUFFER);
finally
GlobalUnlock(hDeviceMode);
end;
Printer.SetPrinter( ADevice, ADriver, APort,hDeviceMode );
finally
ClosePrinter( hPrinter );
end;
end;
P.S. Может нужно разместить это в FAQ? Несколько раз это вопрос уже проплывал.
← →
YuRock (2004-01-05 14:13) [2]Ты же в графике печатаешь, по-этому при EndPage или EndDoc принтер страницу выплевывает. Есть 2 варианта:
1. Плохой - делать так же, но без EndDoc;
2. Печатать в тексте:
2.1. Создать текстровый файл и написать:
const
PrnPort = "LPT1:";
...
begin
// Подготовка текстового файла с одной строкой
// ...
CopyFile("имя файла", PrnPort, False);
end;
...
2.2. Делать так же, как и 2.1., но без создания промежут. файла (сразу писать в порт, открытый как файл).
← →
sVic (2004-01-05 14:50) [3]Спасибо, через LPT1 все получилось.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.01.16;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.01 c