![]() |
![]() ![]() ![]() ![]() |
|
Перевести принтер в режим DuplexDelphi , ОС и Железо , Принтеры и ПечатьПеревести принтер в режим Duplex
Оформил: DeeCo
{
You typically switch a printer to duplex mode by changing its
TDeviceMode(API: DEVMODE)record .But first you should test whether
the installed printer driver supports this:
}
uses
printers, winspool;
function PrinterSupportsDuplex: Boolean;
var
Device, Driver, Port: array[0..255] of Char;
hDevMode: THandle;
begin
Printer.GetPrinter(Device, Driver, Port, hDevmode);
Result :=
WinSpool.DeviceCapabilities(Device, Port, DC_DUPLEX, nil, nil) <>
0;
end;
{if it does you can try to switch the duplex mode on before you call
richedit.print:}
var
Device, Driver, Port: array[0..80] of Char;
DevMode: THandle;
pDevmode: PDeviceMode;
begin
// Get printer device mode handle.
Printer.GetPrinter(Device, Driver, Port, DevMode);
if Devmode <> 0 then begin
// lock it to get pointer to DEVMODE record
pDevMode := GlobalLock(Devmode);
if pDevmode <> nil then
try
with pDevmode^ do begin
dmDuplex := DMDUP_VERTICAL;
dmFields := dmFields or DM_DUPLEX;
end;
finally
// unlock devmode handle.
GlobalUnlock(Devmode);
end;
end; { If }
end;
Перевод контента на русский язык: Это фрагмент кода на Delphi, демонстрирующий, как переключить принтер в режим двустороннего печати с помощью записи
Альтернативное решение: Вместо блокировки и разблокировки handle устройства принтера можно использовать объект Код создает объект Также стоит отметить, что метод Программисты могут изменить принтер в режим двойного печатания (Duplex) с помощью изменения записи TDeviceMode (DEVMODE) и тестирования поддержки этого режима установленным драйвером принтера. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш :: Главная :: Принтеры и Печать ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 | ||||