Ir al contenido


Foto

[TRUCO DELPHI] Listar los Formatos de Papel de la Impresora en uso.


  • Por favor identifícate para responder
No hay respuestas en este tema

#1 sir.dev.a.lot

sir.dev.a.lot

    Advanced Member

  • Miembros
  • PipPipPip
  • 545 mensajes
  • Location127.0.0.1

Escrito 26 agosto 2016 - 08:56

[TRUCO DELPHI] Listar los Formatos de Papel de la Impresora en uso.


delphi
  1. procedure GetPaperFormats(aSL: TStringList);
  2. type
  3. TPaperName = Array [0..63] of Char;
  4. TPaperNameArray = Array [1..High(Cardinal) div
  5. Sizeof( TPaperName )] of
  6. TPaperName;
  7. PPapernameArray = ^TPaperNameArray;
  8. Var
  9. Device, Driver, Port: Array [0..255] of Char;
  10. hDevMode: THandle;
  11. i, numPaperformats: Integer;
  12. pPaperFormats: PPapernameArray;
  13. begin
  14. Printer.PrinterIndex := -1;
  15. Printer.GetPrinter(Device, Driver, Port, hDevmode);
  16. numPaperformats :=
  17. WinSpool.DeviceCapabilities(
  18. Device, Port, DC_PAPERNAMES, Nil, Nil);
  19. If numPaperformats > 0 Then
  20. Begin
  21. GetMem(pPaperformats,
  22. numPaperformats *
  23. Sizeof( TPapername ));
  24. try
  25. WinSpool.DeviceCapabilities
  26. (Device, Port, DC_PAPERNAMES,
  27. Pchar( pPaperFormats ), Nil);
  28. aSL.clear;
  29. For i:= 1 To numPaperformats Do
  30. aSL.lines.add( pPaperformats^[i] );
  31. finally
  32. FreeMem( pPaperformats );
  33. end;
  34. End;
  35. End;

Ejemplo de uso:


delphi
  1. GetPaperFormats(Memo1.Lines);

Saludos!

 


  • 1




IP.Board spam blocked by CleanTalk.