![]() |
Text zum Drucker schicken
Habe das hier gefunden
Delphi-Quellcode:
reicht das aus? Sollte schon Unicode fähig sein.
uses
Printers; procedure PrintTest; var pt: System.Text; begin AssignPrn(pt); Rewrite(pt); Printer.Canvas.Font.Name := 'Arial'; Printer.Canvas.Font.Size := 12; WriteLn(pt, 'UnicodeText'); System.Close(pt); end; EDIT: Scheint so. Zumindest funktioniert es mit Microsoft Print to PDF. Hat sich erledigt. |
AW: Text zum Drucker schicken
|
AW: Text zum Drucker schicken
Zitat:
Das Schnipsel oben funktioniert soweit. Oder wolltest du mir sagen das wäre falsch? Zitat:
|
AW: Text zum Drucker schicken
Zitat:
Hatte ich erst kürzlich wieder, obwohl dort eigentlich ein Drucker eingestellt ist. Der hat aber nicht mehr mit Windows kommuniziert und Windows hatte dann keinen voreingestellten Drucker mehr. |
AW: Text zum Drucker schicken
Zitat:
Nur leider kenne ich mich damit gar nicht aus. Wo oder wie komme ich an den Drucker dran? Kann ja nicht irgend etwas nehmen. Meine Funktion sieht so aus die geht mit dem PDF Drucker von MS, habe keinen eigenen. Den habe ich als Default eingestellt.
Delphi-Quellcode:
Ich selektiere einen Bereich in meiner ListBox.
procedure SendToPrinter(WinHandle: HWND);
var pt: Text; hCtrl: HWND; Count, SelItems, K: Integer; SelItem : array of Integer; sBuffer: string; buffer: string; begin hCtrl := GetDlgItem(WinHandle, ID_LISTBOX); Count := SendMessage(hCtrl, LB_GETCOUNT, 0, 0); if (Count > 0) then begin SelItems := SendMessage(hCtrl, LB_GETSELCOUNT, 0, 0); if (SelItems > 0) then begin SetLength(SelItem, SelItems); SendMessage(hCtrl, LB_GETSELITEMS, SelItems, LPARAM(SelItem)); for K := 0 to SelItems - 1 do begin sBuffer := GetTextListbox(hCtrl, SelItem[K]); Buffer := buffer + sBuffer + #13#10; end; // Drucker part AssignPrn(pt); Rewrite(pt); Printer.Canvas.Font.Name := 'Segoe UI'; Printer.Canvas.Font.Size := 12; WriteLn(pt, Buffer); Close(pt); Buffer := ''; SetLength(SelItem, 0); end else begin for K := 0 to Count - 1 do begin sBuffer := GetTextListbox(hCtrl, K); Buffer := buffer + sBuffer + #13#10; end; // Drucker part AssignPrn(pt); Rewrite(pt); Printer.Canvas.Font.Name := 'Segoe UI'; Printer.Canvas.Font.Size := 12; WriteLn(pt, Buffer); Close(pt); Buffer := ''; end; end; end; Und schicke den selektierten Text direkt an den Drucker. Wenn nichts selektiert ist dann wird der ganze Text verschickt. |
AW: Text zum Drucker schicken
Wenn es nicht automatisch läuft, kannst du einen PrinterDialog davor machen. Ansonsten solltest du es zumindest in einem Try-Except-Block kapseln.
|
AW: Text zum Drucker schicken
Zitat:
Kenn mich damit nicht so richtig aus. Man kann nicht alles wissen :oops: |
AW: Text zum Drucker schicken
Moin...:P
Ich empfehle ein Print System wie FastReport. Die kennen sich besser mit Drucken aus als wir. :zwinker: Der manuelle Druck ist mit Sicherheit für das Vorhaben aussreichend...aber ohne visuelle Positierung der Texte. Das kommt mit Sicherheit gleich danach...der Wunsch nach "Schönheit". :zwinker: Deshalb denke ich, das die Auseinandersetzung mit FastReport o.ä. besser ist. Die Zeit des Lernens ist da besser aufgehoben...:zwinker: |
AW: Text zum Drucker schicken
Zitat:
Das ist ein Runtime Tracer da ist nix mit Schönheit der Text muss nur rüber gebracht werden. Im Grunde reicht ein copy\paste ins ClipBoard was ich ja zusätzlich noch mache. Aber dafür jetzt extra Software zu bemühen ? Weis nicht ob das für ein Freeware Projekt das wahre ist. Man muss das im Verhältnis immer etwas abwägen. ;) |
AW: Text zum Drucker schicken
Dann würde ich nur ClipBoard anbieten ;-)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:04 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 by Thomas Breitkreuz