Fórum Pegar Tamanho Papel Impressora Padrão #274451
29/03/2005
0
Agradeço desde já.

Anarquistaoi
Curtir tópico
+ 0Posts
29/03/2005
Faelcavalcanti
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | procedure TForm1.MostraTamPapel; var ADevice, ADriver, APort: array[0..255] of char; DeviceMode: THandle; M: PDevMode; s: string; begin // Força o uso de Printer. Se esta linha for removida, a primeira // invocação falha. Bug da VCL S := Printer.Printers[Printer.PrinterIndex]; // Pega dados da impressora atual Printer.GetPrinter(ADevice, ADriver, APort, DeviceMode); // Pega um ponteiro para DEVMODE M := GlobalLock(DeviceMode); if M <> nil then MostraDevMode(M^); end; function TForm1.PegaTamanhoPapel(dmPaperSize: word): string; begin Result := ´Desconhecido´; // Verifica ALGUNS TAMANHOS POSSÍVEIS. Existem outros, veja DEVMODE case dmPaperSize of DMPAPER_USER: Result := ´Definido pelo usuário´; DMPAPER_LETTER: Result := ´Letter, 8 1/2- by 11-inches´; DMPAPER_LEGAL: Result := ´Legal, 8 1/2- by 14-inches´; DMPAPER_A4: Result := ´A4 Sheet, 210- by 297-millimeters´; end; end; procedure TForm1.MostraDevMode(const M: TDevMode); begin // Mostra o valor de alguns campos with M do begin // Mostra nome da impressora Memo1.Lines.Add(´Nome:´ + dmDeviceName); // Verifica se campo tamanho do papel esta preenchido e mostra if dmFields and DM_PAPERSIZE <> 0 then Memo1.Lines.Add(PegaTamanhoPapel(dmPaperSize)); if dmFields and DM_PAPERLENGTH <> 0 then Memo1.Lines.Add(Format(´Altura:¬d´, [dmPaperLength])); if dmFields and DM_PAPERWIDTH <> 0 then Memo1.Lines.Add(Format(´Comprimento:¬d´, [dmPaperWidth])); end; end; |
Agora assim, eu tava tentando fazer um exemplo bem simples, mas vi uma parte de código já pronto aqui. Espero que com este conteúdo você poderá fazer um bom proveito para o seu uso, mas tipow, se liga que terás que declarar para o Objeto [b:09612ba00f]Printers[/b:09612ba00f] do Canvas, e se liga nas constantes, são elas que têm um valor literal encapsulado com o valor das medidas exatas de um determinado papel.
Agora para saber a impressora tu poderia usar tipow:
1 2 3 4 | function ImpressoraCorrente: string; begin Result := Printer.Printers[Printer.PrinterIndex]; end; |
Qualquer coisa dá um response aqui, que agente te dá uma força!
:wink:
Espero ter ajudado.
Gostei + 0
29/03/2005
Anarquistaoi
Gostei + 0
29/03/2005
Faelcavalcanti
:wink: :wink: :wink:
Falow!!!
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)