Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Problem beim Ausdrucken (https://www.delphipraxis.net/110596-problem-beim-ausdrucken.html)

Power-Poler 20. Mär 2008 15:24


Problem beim Ausdrucken
 
Langsam könnte ich gegen die Wand rennen, irgenwas ist immer :wall:

Folgendes Problem habe ich diesesmal:
Ich habe ein RichText feld, mit Text drin:
der ungefähr so ausieht
Code:
Name                      Wort
Name2              Wort2   Wort3
Name3
Name4
also, wie man hier sieht, Wort3 unter Wort steht.
Rauskommen tut es aber so:
Code:
Name        Wort
Name2                Wort2   Wort3
Name3
Name4
Also ganz anderes vom aufbau her.

der code den ich zum drucken nehme:
Delphi-Quellcode:
procedure TForm3.Button1Click(Sender: TObject);
begin
if printdialog1.execute
then
richedit1.print('Name');
end;
Ich war der meinung, das dieser code den RichText exakt ausdruckt, so wie er auf dem Bilschim steht, aber irgenwie wärden Leerzeichen vergessen, oder sonst was, kann auch daran liegen, das die Schrieftart nicht übernohmen wird. Diese ist nämlich: "Courier", und bei dieser hat ja jeder Buchstabe und jedes zeichen die gleiche grösse, aber auf dem Blatt widerrum nicht. Kann ich bei dieser art von Druckcode noch irgenwo sagen, das er Courier nehmen soll? Probiert habe ich schon mit:
Delphi-Quellcode:
richedit1.print('Name');
Printer.Canvas.Font.Name:='Courier';
und
Printer.Canvas.Font.Name:='Courier';
richedit1.print('Name');
Beides nimmt er nicht, gibt es da noch eine andere Methode?

ferby 24. Mär 2008 02:35

Re: Problem beim Ausdrucken
 
Hallo,

ist zwar vielleicht nicht die beste Lösung aber so mach's ich:

1) Ich speicher das RTF in einer Datei ab
müsste sein:
Delphi-Quellcode:
richedit1.savetofile('mein.rtf');
2) Und starte dannach die Datei mit dem Parameter drucken
Delphi-Quellcode:
ShellExecute(Handle,'print',PChar(mein.rtf),Nil,Nil,SW_SHOW);
3) Es öffnet sich Word, druck von selbst, und schließt sich wieder

(RTF wird ja standardmäßig mit Word Pad oder Microsoft Word geöffnet,
beide drucken normal fehlerlos)

Power-Poler 25. Mär 2008 08:11

Re: Problem beim Ausdrucken
 
Danke, hört sich gut an, habs auch ausbrobiert, nur leider meint er:
[Error] Unit3.pas(59): Undeclared identifier: 'ShellExecute'

DeddyH 25. Mär 2008 08:15

Re: Problem beim Ausdrucken
 
uses ShellAPI;

Power-Poler 25. Mär 2008 08:24

Re: Problem beim Ausdrucken
 
Also der fehler mit dem: [Error] Unit3.pas(59): Undeclared identifier: 'ShellExecute' ist jetzt weg, aber leider druckt er noch genauso falsch wie vorher aus, also mit der Standard Schrieftart, und mit der Standard grösse :wall:

Edit:
Hab jetzt mal das rtf dokument geöffent, dort steht alles drin, wie es gespeichert wurde, aber auch beim ausdrucken direkt aus dem rtf dokumment kommt es falsch raus, irgenwie komm ich nicht mher weiter :coder2:
Wie ich es nach mehrmaligen versuchen mit verschiedenen Schreiftarten deute, ist es für meinen PC egal, welche Schfieftart ich einstelle, rauskommen tut es als Times new Roman, oder wie die schreiftart jetzt heist.

ferby 26. Mär 2008 00:06

Re: Problem beim Ausdrucken
 
Hmmm, wenn ich dich jetzt richtig verstanden habe, heißt das, du hast im RTF Courier eingestellt und wenn du es druckst kommt trotzdem Times New Roman??

Wenn ja, dann weiß ich leider auch nicht weiter, hatte so ein problem noch nie.

Vielleicht kann das am Druckertreiber liegen, probiers mal bei einen anderen PC+Drucker ob's dort geht......

Sonst fällt mir leider auch nix mehr ein

Power-Poler 26. Mär 2008 09:27

Re: Problem beim Ausdrucken
 
Hab leider keinen anderen drucker, an dem ich es Probieren könnte, aber ich hab da noch ne andere idee:
Ist es möglisch, den Text als Bild zu speichern, und dan zu drucken?


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:16 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz