![]() |
Alten Drucker ansteuern
Hallo,
leider habe ich die Notwendigkeit einen alten Drucker ansteuern zu müssen. Bis Delphi 2007 war das kein Problem, folgendes funktioniert:
Delphi-Quellcode:
wobei die Funktion so hinterlegt ist
cDruck:=#27#64; // Initialisierung
cDruck:=cDruck+#18; // Keine Schmalschrift cDruck:=cDruck+#27#67+chr(24)+#13; // Seitenlänge in Zoll * 6 .... cDruck := MyAnsiToOem(cDruck); Stream := TFileStream.create('LPT1:',fmOpenWrite); try Stream.Write(pchar(cDruck)^,length(cDruck)); finally Stream.free; cDruck := ''; end;
Delphi-Quellcode:
Nach der Umstellung auf D 2009 geht es lt. Kunde nicht mehr, die Resultate sind aber undefinert. d.h. sie schwanken
SetLength(Result, Length(Ansi));
CharToOemBuff( PChar(Ansi), PAnsiChar(Result), Length(Result)); Eine Umstellung auf cDruck: ansistring hat keine Besserung gebracht. Habt Ihr einen Tipp für mich? |
Re: Alten Drucker ansteuern
Speichere den Stream in eine Datei und schau mal was da ankommt (z.B. mit einem HexEditor)
Delphi-Quellcode:
Müsste das nicht dann auch pAnsiChar sein?
pchar(cDruck)^,
Warum musst du überhaupt casten? |
Re: Alten Drucker ansteuern
Wenn, dann sollte wohl besser alles auf Ansi umgesellt werden:
Delphi-Quellcode:
function MyAnsiToOem(const Ansi: RawByteString): RawByteString;
begin SetLength(Result, Length(Ansi)); CharToOemBuffA(PAnsiChar(Ansi), PAnsiChar(Result), Length(Result)); end; var cDruck: RawByteString; cDruck := #27#64; // Initialisierung cDruck := cDruck + #18; // Keine Schmalschrift cDruck := cDruck + #27#67 + AnsiChar(24) + #13; // Seitenlänge in Zoll * 6 cDruck := MyAnsiToOem(cDruck); Stream := TFileStream.Create('LPT1:',fmOpenWrite); try Stream.Write(PAnsiChar(cDruck)^, Length(cDruck)); finally Stream.Free; cDruck := ''; end; |
Re: Alten Drucker ansteuern
Vielen Dank für Eure Hinweise, die komplette Umstellung auf Ansi hat geholfen.
Gruß :P |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:45 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz