Articles   Members Online: 3
-Article/Tip Search
-News Group Search over 21 Million news group articles.
-Delphi/Pascal
-CBuilder/C++
-C#Builder/C#
-JBuilder/Java
-Kylix
Member Area
-Home
-Account Center
-Top 10 NEW!!
-Submit Article/Tip
-Forums Upgraded!!
-My Articles
-Edit Information
-Login/Logout
-Become a Member
-Why sign up!
-Newsletter
-Chat Online!
-Indexes NEW!!
Employment
-Build your resume
-Find a job
-Post a job
-Resume Search
Contacts
-Contacts
-Feedbacks
-Link to us
-Privacy/Disclaimer
Embarcadero
Visit Embarcadero
Embarcadero Community
JEDI
Links
How to save the printer setting to file Turn on/off line numbers in source code. Switch to Orginial background IDE or DSP color Comment or reply to this aritlce/tip for discussion. Bookmark this article to my favorite article(s). Print this article
14-Apr-04
Category
Reporting /Printing
Language
Delphi 3.x
Views
150
User Rating
No Votes
# Votes
0
Replies
0
Publisher:
DSP, Administrator
Reference URL:
DKB
			Author: Remmelt Koenes

How to save the printer setting to file and then load it

Answer:

Create a unit PrinterSetup and place code in this unit. Do the following to save 
the printer config to file 
1   
2   procedure TForm1.Button1Click(Sender: TObject);
3   var
4     PrinterSetup: TPrinterSetup
5   begin
6     PrinterSetup := TPrinterSetup.Create;
7     PrinterSetup.SaveSetup(FileName);
8     //where file name is a string to the location of the File ex.'c:\print.cfg'
9     PrinterSetup.Free;
10  end
11  
12  PrinterSetup unit  code
13  
14  unit PrinterSetup;
15  
16  interface
17  
18  uses
19    printers,
20    windows,
21    SysUtils,
22    Classes,
23    WinSpool;
24  
25  type
26    TPrinterSetup = class
27  
28    private
29      Device, Driver, Port: array[0..CCHDEVICENAME] of char;
30      DeviceMode: THandle;
31      procedure Refresh;
32  
33    protected
34  
35    public
36      procedure SaveSetup(FileName: TFilename);
37      procedure LoadSetup(FileName: TFilename);
38    end;
39    TPrinterConfig = record
40      ADevice, ADriver, APort: array[0..CCHDEVICENAME] of char;
41      SizeOfDeviceMode: DWORD;
42    end;
43  
44  implementation
45  
46  procedure TPrinterSetup.Refresh;
47  begin
48    Printer.GetPrinter(Device, Driver, Port, DeviceMode);
49  end;
50  
51  procedure TPrinterSetup.SaveSetup(FileName: TFilename);
52  var
53    StubDevMode: TDeviceMode;
54    SetupPrinter: TPrinterConfig;
55    FPrinterHandle: THandle;
56    fFileConfig: file of TPrinterConfig;
57    fFileDevMode: file of Char;
58    pDevMode: PChar;
59    Contador: Integer;
60  begin
61    Refresh;
62    with SetupPrinter do
63    begin
64      StrLCopy(ADevice, Device, SizeOf(ADevice));
65      StrLCopy(ADriver, Driver, SizeOf(ADriver));
66      StrLCopy(APort, Port, SizeOf(APort));
67      OpenPrinter(Device, FPrinterHandle, nil);
68      SizeOfDeviceMode := DocumentProperties(0, FPrinterHandle, Device,
69        StubDevMode, StubDevMode, 0);
70    end;
71    AssignFile(fFileConfig, FileName);
72    ReWrite(fFileConfig);
73    write(fFileConfig, SetupPrinter);
74    CloseFile(fFileConfig);
75    AssignFile(fFileDevMode, FileName);
76    Reset(fFileDevMode);
77    Seek(fFileDevMode, FileSize(fFileDevMode));
78    pDevMode := GlobalLock(DeviceMode);
79    for Contador := 0 to SetupPrinter.SizeOfDeviceMode - 1 do
80    begin
81      write(fFileDevMode, pDevMode[Contador]);
82    end;
83    CloseFile(fFileDevMode);
84    GlobalUnLock(DeviceMode);
85  end;
86  
87  procedure TPrinterSetup.LoadSetup(FileName: TFilename);
88  var
89    SetupPrinter: TPrinterConfig;
90    fFileConfig: file of TPrinterConfig;
91    fFileDevMode: file of Char;
92    ADeviceMode: THandle;
93    pDevMode: PChar;
94    Contador: Integer;
95  begin
96    if FileExists(FileName) then
97    begin
98      AssignFile(fFileConfig, FileName);
99      Reset(fFileConfig);
100     read(fFileConfig, SetupPrinter);
101     CloseFile(fFileConfig);
102     AssignFile(fFileDevMode, FileName);
103     Reset(fFileDevMode);
104     Seek(fFileDevMode, SizeOf(SetupPrinter));
105     ADeviceMode := GlobalAlloc(GHND, SetupPrinter.SizeOfDeviceMode);
106     pDevMode := GlobalLock(ADeviceMode);
107     for Contador := 0 to SetupPrinter.SizeOfDeviceMode - 1 do
108     begin
109       read(fFileDevMode, char(pDevMode[Contador]));
110     end;
111     CloseFile(fFileDevMode);
112     GlobalUnLock(ADeviceMode);
113     Printer.SetPrinter(SetupPrinter.ADevice, SetupPrinter.ADriver,
114       SetupPrinter.APort, ADeviceMode);
115   end;
116 end;
117 
118 end.


			
Vote: How useful do you find this Article/Tip?
Bad Excellent
1 2 3 4 5 6 7 8 9 10

 

Advertisement
Share this page
Advertisement
Download from Google

Copyright © Mendozi Enterprises LLC