Autor Beitrag
farbdoc
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Mo 22.07.02 13:14 
hi.

ich versuche die Seitengröße für einen druckauftrag zu ändern zwecks auf etiketten drucken (etikettendrucker vom typ brady BP).
ich hab auch schon einen beispielcode gefunden, aber auf den reagiert mein drucker nicht:

ausblenden volle Höhe Quelltext
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:
var
Device : array[0..255] of char;
Driver : array[0..255] of char;
Port   : array[0..255] of char;
hDMode : THandle;
PDMode : PDEVMODE;
begin
  Printer.PrinterIndex := Printer.PrinterIndex;
  Printer.GetPrinter(Device, Driver, Port, hDMode);
  
  if hDMode <> 0 then 
  begin
    pDMode := GlobalLock(hDMode);
    if pDMode <> nil then 
    begin

     {Set to legal}
      pDMode^.dmFields := pDMode^.dmFields or dm_PaperSize;
      pDMode^.dmPaperSize := DMPAPER_LEGAL;

     {Set to custom size}
      pDMode^.dmFields := pDMode^.dmFields or 
                          DM_PAPERSIZE or
                          DM_PAPERWIDTH or
                          DM_PAPERLENGTH;
      pDMode^.dmPaperSize := DMPAPER_USER;
      pDMode^.dmPaperWidth := 100 {SomeValueInTenthsOfAMillimeter};
      pDMode^.dmPaperLength := 100 {SomeValueInTenthsOfAMillimeter};

     {Set the bin to use}
      pDMode^.dmFields := pDMode^.dmFields or DMBIN_MANUAL;
      pDMode^.dmDefaultSource := DMBIN_MANUAL;

      GlobalUnlock(hDMode);
    end;
  end;
  
  Printer.PrinterIndex := Printer.PrinterIndex;
  Printer.BeginDoc;
  Printer.Canvas.TextOut(100,100, 'Test 1');
  Printer.EndDoc;
end;



ich benutz win2000. kann mir jemand ne' hilfestelluing geben?
der drucker benutz scheinbar trotz obigem code die seitengröße, die
er standardmäßig benutzt.

schon mal danke im voraus!

der farbdoc...
L.E.A.
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Mi 24.07.02 18:24 
Hallo.

Ist Printer vom Typ TPrinter? Da gibt es nämlich die Properties PageHeight und PageWidth und du brauchst den ganzen Code vorm Drucken nicht.

Was soll Printer.PrinterIndex := Printer.PrinterIndex; machen?

Ciao
Dirk
farbdoc Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Do 25.07.02 11:52 
hi.

das mit pageHeight und pageWidth habe ich versucht, und bin daran gescheitert weil diese Properties readOnly sind.

Was das mit
ausblenden Quelltext
1:
Printer.PrinterIndex := Printer.PrinterIndex;					

soll weiß ich auch nicht. Diese Zeilen habe ich in meinem code
auch auskommentiert.

danke trotzdem...