Einzelnen Beitrag anzeigen

Peter60

Registriert seit: 17. Mär 2005
Ort: Im schönen Allgäu
66 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Delphi 2009 Umstellung Drucker Steuercodes gehen nicht m

  Alt 28. Jul 2009, 07:52
Leider Nein!
Ich übergeben den String an ein TRichEdit dieser wird dann gedruckt ich vermute das das der Grund ist.

Kleiner Codeauszug
Hier werden die Druckersteuercode zugewiesen

Delphi-Quellcode:
Belegtext.Clear; // TRichEdit
Belegtext.Lines.Append(#27+#64); // Drucker initialisieren
Belegtext.Lines.Append(#27+#77+#48);
Belegtext.Lines.Append(#27+#82+#2); // Deutscher Zeichensatz //FKasse.Belegtext.Lines.Append('ÄÖÜßäöüß');
Belegtext.Lines.Append('Bla Bla');
DruckeRoh_String(Belegtext.Text, Drucker);
.....
Dann wird diese Procedure aufgerufen:
.....

Delphi-Quellcode:
procedure DruckeRoh_String(DruckText:AnsiString; Drucker :integer);
var Printer1 : array [0..255] of char;
    p : Integer;

  function RawDataToPrinter(const szPrinterName : Ansistring;
                            const data:Ansistring;
                            dwCount : DWORD) : boolean;
  var
    hPrinter : THandle;
    DocInfo : TDocInfo1;
    dwJOB : DWORD;
    dwBytesWritten : DWORD;
  begin
    Result := False;
    if OpenPrinter (pchar (szPrinterName), hPrinter, Nil) then
      try
        // Fill in the structure with info about this "document"
        DocInfo.pDocName := 'Belegdruck';
        DocInfo.pOutputFile := Nil;
        DocInfo.pDatatype := 'RAW';
        // Inform the spooler the document is beginning
        dwJob := StartDocPrinter (hPrinter, 1, @docInfo);
        if dwJob <> 0 then
          try
            if StartPagePrinter (hPrinter) then
              try
                if WritePrinter (hPrinter, Pchar(data), dwCount, dwBytesWritten) then
                  Result := dwBytesWritten = dwCount;
              finally
                EndPagePrinter (hPrinter)
              end
          finally
            EndDocPrinter (hPrinter);
          end
      finally
        ClosePrinter (hPrinter)
      end
  end; {RawDataToPrinter}

begin
  GetProfileString ('windows', 'device', ',,,', Printer1, Sizeof(Printer1));
  p := Pos (',', Printer1);
  if p > 0 then
    Printer1 [p - 1] := #0;

  RawDataToPrinter (Printer1, DruckText, length(DruckText));
end;
Peter60

[edit=mkinzler]Delphi-Tags eingefügt Mfg, mkinzler[/edit]
  Mit Zitat antworten Zitat