Wie kann ich im Querformat, mit Papier aus dem manuellen oberen Papierschacht drucken ?
(Das mit dem Papierschacht hat sich (fast) geklärt -> wäre nur über einen Quelltext Dankbar der all diese Elemente vereint.)
Ich hab es wie unten zu sehen ist probiert aber irgendwo muss ein Fehler sein: "Undeclare Identifier: 'PrinterIndex'"
Ich hoffe jemand kann mir helfen, vielleicht den Fehler finden und berichtigen und ausserdem das Querformat einbinden.
Vielen Dank schon im Vorraus - Mathias
----------------- Quellcode: -------------------
procedure Teingabeform.druckenBitBtnClick(Sender: TObject);
var
aDevice : array[0..255] of char;
aDriver : array[0..255] of char;
aPort : array[0..255] of char;
hDMode : THandle;
PDMode : PDEVMODE;
begin
Printer.PrinterIndex := -1;
Printer.GetPrinter(aDevice, aDriver, aPort, hDMode);
if hDMode <> 0 then begin
pDMode := GlobalLock(hDMode);
if pDMode <> nil then begin
pDMode^.dmFields := DM_DEFAULTSOURCE;
pDMode^.dmDefaultSource := DMBIN_MANUAL;
//pDMode^.dmDefaultSource := DMBIN_AUTO ;
GlobalUnlock(hDMode);
end;
end;
Printer.BeginDoc; //Starten des Druckauftrags
Printer.Canvas.TextOut (0, 0, ' ');//Erklär' ich nicht, muss aber sein, sonst funktioniert das Ganze nicht
SetMapMode (Printer.Canvas.Handle, MM_LOMETRIC);//Damit wird die Druckausgabe auf Zehntel-Millimeter umgeschaltet
with Printer.Canvas do
begin
PrinterIndex := Printer.PrinterIndex; ////////
Font.Name := 'Arial'; //Hier kannst Du den Schriftnamen angeben;
Font.Height := 300; //Schrifthöhe in Zehntel-Millimeter;
SetTextAlign (Handle, TA_LEFT + TA_TOP); //Textausrichtung links oben
TextOut (400, -200, fabrikat.text); //Damit wird der Text an Positionen x und y geschrieben
Font.Height := 100; //Schrifthöhe in Zehntel-Millimeter;
SetTextAlign (Handle, TA_LEFT + TA_TOP); //Textausrichtung links oben
TextOut (200, -500, erstzulassung.text); //Damit wird der Text an Positionen x und y geschrieben
end;
Printer.EndDoc;
end;
(Das mit dem Papierschacht hat sich (fast) geklärt -> wäre nur über einen Quelltext Dankbar der all diese Elemente vereint.)
Ich hab es wie unten zu sehen ist probiert aber irgendwo muss ein Fehler sein: "Undeclare Identifier: 'PrinterIndex'"
Ich hoffe jemand kann mir helfen, vielleicht den Fehler finden und berichtigen und ausserdem das Querformat einbinden.
Vielen Dank schon im Vorraus - Mathias
----------------- Quellcode: -------------------
procedure Teingabeform.druckenBitBtnClick(Sender: TObject);
var
aDevice : array[0..255] of char;
aDriver : array[0..255] of char;
aPort : array[0..255] of char;
hDMode : THandle;
PDMode : PDEVMODE;
begin
Printer.PrinterIndex := -1;
Printer.GetPrinter(aDevice, aDriver, aPort, hDMode);
if hDMode <> 0 then begin
pDMode := GlobalLock(hDMode);
if pDMode <> nil then begin
pDMode^.dmFields := DM_DEFAULTSOURCE;
pDMode^.dmDefaultSource := DMBIN_MANUAL;
//pDMode^.dmDefaultSource := DMBIN_AUTO ;
GlobalUnlock(hDMode);
end;
end;
Printer.BeginDoc; //Starten des Druckauftrags
Printer.Canvas.TextOut (0, 0, ' ');//Erklär' ich nicht, muss aber sein, sonst funktioniert das Ganze nicht
SetMapMode (Printer.Canvas.Handle, MM_LOMETRIC);//Damit wird die Druckausgabe auf Zehntel-Millimeter umgeschaltet
with Printer.Canvas do
begin
PrinterIndex := Printer.PrinterIndex; ////////
Font.Name := 'Arial'; //Hier kannst Du den Schriftnamen angeben;
Font.Height := 300; //Schrifthöhe in Zehntel-Millimeter;
SetTextAlign (Handle, TA_LEFT + TA_TOP); //Textausrichtung links oben
TextOut (400, -200, fabrikat.text); //Damit wird der Text an Positionen x und y geschrieben
Font.Height := 100; //Schrifthöhe in Zehntel-Millimeter;
SetTextAlign (Handle, TA_LEFT + TA_TOP); //Textausrichtung links oben
TextOut (200, -500, erstzulassung.text); //Damit wird der Text an Positionen x und y geschrieben
end;
Printer.EndDoc;
end;
Comment