Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения
KANSoftWare

Сохранить установки принтера в файл

Delphi , ОС и Железо , Принтеры и Печать

Сохранить установки принтера в файл

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

{ 
  Create a unit PrinterSetup and place code in this unit 
  Do the following to save the printer config to file 
}

 procedure TForm1.Button1Click(Sender: TObject);
 var
   PrinterSetup: TPrinterSetup
 begin
   PrinterSetup := TPrinterSetup.Create;
   PrinterSetup.SaveSetup(FileName);
   //where file name is a string to the location of the File ex.'c:\print.cfg' 
  PrinterSetup.Free;
 end

 {***********************************}

 unit PrinterSetup;

 interface

 uses
   printers,
   windows,
   SysUtils,
   Classes,
   WinSpool;

 type
   TPrinterSetup = class

   private
     Device, Driver, Port: array[0..CCHDEVICENAME] of char;
     DeviceMode: THandle;
     procedure Refresh;

   protected

   public
     procedure SaveSetup(FileName: TFilename);
     procedure LoadSetup(FileName: TFilename);
   end;
   TPrinterConfig = record
     ADevice, ADriver, APort: array[0..CCHDEVICENAME] of char;
     SizeOfDeviceMode: DWORD;
   end;

 implementation

 procedure TPrinterSetup.Refresh;
 begin
   Printer.GetPrinter(Device, Driver, Port, DeviceMode);
 end;

 procedure TPrinterSetup.SaveSetup(FileName: TFilename);
 var
   StubDevMode: TDeviceMode;
   SetupPrinter: TPrinterConfig;
   FPrinterHandle: THandle;
   fFileConfig: file of TPrinterConfig;
   fFileDevMode: file of Char;
   pDevMode: PChar;
   Contador: Integer;
 begin
   Refresh;
   with SetupPrinter do
   begin
     StrLCopy(ADevice, Device, SizeOf(ADevice));
     StrLCopy(ADriver, Driver, SizeOf(ADriver));
     StrLCopy(APort, Port, SizeOf(APort));
     OpenPrinter(Device, FPrinterHandle, nil);
     SizeOfDeviceMode := DocumentProperties(0, FPrinterHandle, Device,
       StubDevMode, StubDevMode, 0);
   end;
   AssignFile(fFileConfig, FileName);
   ReWrite(fFileConfig);
   Write(fFileConfig, SetupPrinter);
   CloseFile(fFileConfig);
   AssignFile(fFileDevMode, FileName);
   Reset(fFileDevMode);
   Seek(fFileDevMode, FileSize(fFileDevMode));
   pDevMode := GlobalLock(DeviceMode);
   for Contador := 0 to SetupPrinter.SizeOfDeviceMode - 1 do
   begin
     Write(fFileDevMode, pDevMode[Contador]);
   end;
   CloseFile(fFileDevMode);
   GlobalUnLock(DeviceMode);
 end;


 procedure TPrinterSetup.LoadSetup(FileName: TFilename);
 var
   SetupPrinter: TPrinterConfig;
   fFileConfig: file of TPrinterConfig;
   fFileDevMode: file of Char;
   ADeviceMode: THandle;
   pDevMode: PChar;
   Contador: Integer;
 begin
   if FileExists(FileName) then
   begin
     AssignFile(fFileConfig, FileName);
     Reset(fFileConfig);
     read(fFileConfig, SetupPrinter);
     CloseFile(fFileConfig);
     AssignFile(fFileDevMode, FileName);
     Reset(fFileDevMode);
     Seek(fFileDevMode, SizeOf(SetupPrinter));
     ADeviceMode := GlobalAlloc(GHND, SetupPrinter.SizeOfDeviceMode);
     pDevMode := GlobalLock(ADeviceMode);
     for Contador := 0 to SetupPrinter.SizeOfDeviceMode - 1 do
     begin
       read(fFileDevMode, char(pDevMode[Contador]));
     end;
     CloseFile(fFileDevMode);
     GlobalUnLock(ADeviceMode);
     Printer.SetPrinter(SetupPrinter.ADevice, SetupPrinter.ADriver,
       SetupPrinter.APort, ADeviceMode);
   end;
 end;

 end.

Статья Сохранить установки принтера в файл раздела ОС и Железо Принтеры и Печать может быть полезна для разработчиков на Delphi и FreePascal.


Комментарии и вопросы


Ваше мнение или вопрос к статье в виде простого текста (Tag <a href=... Disabled). Все комментарии модерируются, модератор оставляет за собой право удалить непонравившейся ему комментарий.

заголовок

e-mail

Ваше имя

Сообщение

Введите код




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Принтеры и Печать ::


реклама



©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru Rambler's Top100
29.03.2024 08:23:09/0.0010519027709961/0