Autor |
Beitrag |
galagher
      
Beiträge: 2556
Erhaltene Danke: 45
Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
|
Verfasst: Mo 02.03.15 18:25
Hallo!
Ich möchte mit meinem Editor, der Syntax-Highlighting unterstützt, den Text auch genauso, wie er dargestellt wird, drucken. Ich verwende kein RichEdit, da geht das ja, sondern die Jedi-Komponente TJvWideHLEditor.
Wie kann ich damit den Text farbig, fett, kursiv usw. drucken? Moderiert von Narses: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Mo 02.03.2015 um 22:32
_________________ gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!
|
|
Perlsau
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Di 03.03.15 20:11
Wenn diese Komponente das Wysiwyg-Drucken nicht unterstützt, mußt du das via Drucker-Canvas selber implementieren.
|
|
galagher 
      
Beiträge: 2556
Erhaltene Danke: 45
Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
|
Verfasst: Di 03.03.15 21:21
Perlsau hat folgendes geschrieben : | Wenn diese Komponente das Wysiwyg-Drucken nicht unterstützt, mußt du das via Drucker-Canvas selber implementieren. |
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| Printer.BeginDoc;
Printer.Canvas.Font := aWideHLEditorX.Font;
for i := 0 to aWideHLEditorX.Lines.Count-1 do begin Inc(t, Printer.Canvas.Font.Height+2); Printer.Canvas.TextOut(10, t, aWideHLEditorX.Lines[i]); end;
Printer.EndDoc; |
Naja, so und sowas ähnliches habe ich also nun getestet: Das zieht entweder ein leeres Blatt Papier ohne zu Drucken durch oder es wird eben einfach alles in einer Schriftart, ohne Textattribute gedruckt, und mit aWideHLEditorX.Lines.Text alles in einer einzigen Zeile.
Ist mein Ansatz mit Canvas so völlig daneben? Was muss ich machen?
_________________ gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!
|
|
Perlsau
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Di 03.03.15 23:56
Wenn du keine Farben angibst, wird natürlich auch nicht farbig gedruckt. Wie du die Farben für jedes einzelne Zeichen ermittelst, kann ich dir aus Unkenntnis der Komponente nicht wirklich sagen.
Vielleicht kannst du ja den Inhalt in ein RTF-Dokument streamen. Wie gesagt kenne ich die von dir eingesetzte Komponente nicht und kann dir daher auch nicht wirklich helfen. Zur Not fragst du mal beim Hersteller nach.
|
|
Perlsau
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mi 04.03.15 12:27
Habe mir die Komponente (ist ja von den Jedis, die hab ich auch) nun doch einmal angeschaut. Die Farben werden erst zur Laufzeit gesetzt, da der Text erst zur Laufzeit geparst wird je nach zugeordnetem Highlighter. Im Gegensatz zum RTF-Text sind im Text dieser Highlighter-Komponente keine Formatierungsangeben verfügbar. Daher kannst du das auch nicht farbig drucken.
Ob eine Highlighter-Komponente überhaupt zum Drucken vorgesehen ist, weiß ich nicht, habe das noch nie ausprobiert.
Vielleicht kann ja SynEdit das, was du suchst. Du findest es entweder bei Sourceforge oder bei Github.
Für diesen Beitrag haben gedankt: galagher
|
|
galagher 
      
Beiträge: 2556
Erhaltene Danke: 45
Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
|
Verfasst: Mi 04.03.15 17:58
Perlsau hat folgendes geschrieben : | Die Farben werden erst zur Laufzeit gesetzt, da der Text erst zur Laufzeit geparst wird je nach zugeordnetem Highlighter. Im Gegensatz zum RTF-Text sind im Text dieser Highlighter-Komponente keine Formatierungsangeben verfügbar. Daher kannst du das auch nicht farbig drucken. |
Ich dachte mir, die Farben sind vor dem Drucken ja schon gesetzt, also kann man sie auch genau so drucken...
Perlsau hat folgendes geschrieben : | Ob eine Highlighter-Komponente überhaupt zum Drucken vorgesehen ist, weiß ich nicht, habe das noch nie ausprobiert. |
Mit AssignPrn, Rewrite und Writeln geht es, ja, aber eben nur schwarz.
Und: Die Delphi-IDE bietet sogar an, den Quellcode mit Syntaxhervorhebung zu drucken, also grundsätzlich funktionieren muss es doch!
Aber alles auf SynEdit umstellen möchte ich nicht, dann bleibt's eben so!
_________________ gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!
|
|
Perlsau
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mi 04.03.15 20:40
galagher hat folgendes geschrieben : | Perlsau hat folgendes geschrieben : | Die Farben werden erst zur Laufzeit gesetzt, da der Text erst zur Laufzeit geparst wird je nach zugeordnetem Highlighter. Im Gegensatz zum RTF-Text sind im Text dieser Highlighter-Komponente keine Formatierungsangeben verfügbar. Daher kannst du das auch nicht farbig drucken. | Ich dachte mir, die Farben sind vor dem Drucken ja schon gesetzt, also kann man sie auch genau so drucken... |
Es kommt darauf an, wie die Farben gesetzt sind. Im Unterschied z.B. zu RTF werden hier in der Eigenschaft Lines keine Formatanweisungen (wozu auch z.B. fett und farbig gehören) gespeichert. Soweit ich das gesehen habe, werden die Farben von der Komponente beim Parsen des Textes gesetzt.
galagher hat folgendes geschrieben : | Perlsau hat folgendes geschrieben : | Ob eine Highlighter-Komponente überhaupt zum Drucken vorgesehen ist, weiß ich nicht, habe das noch nie ausprobiert. | Mit AssignPrn, Rewrite und Writeln geht es, ja, aber eben nur schwarz. |
Natürlich nur schwarz, weil diese Komponente keine Druckausgabe hat, die etwas anderes ermöglicht.
galagher hat folgendes geschrieben : | Und: Die Delphi-IDE bietet sogar an, den Quellcode mit Syntaxhervorhebung zu drucken, also grundsätzlich funktionieren muss es doch! |
Ich bezweifle, daß die Delphi-IDE mit dieser Komponente gestrickt wurde ...
galagher hat folgendes geschrieben : | Aber alles auf SynEdit umstellen möchte ich nicht, dann bleibt's eben so! |
Das mußt du selber wissen ... Ich habe bislang noch nie irgend einen Highlight-Text aus einer meiner Anwendungen heraus drucken müssen, daher kann ich dir nichts weiter dazu sagen.
|
|
galagher 
      
Beiträge: 2556
Erhaltene Danke: 45
Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
|
Verfasst: Do 05.03.15 18:11
Perlsau hat folgendes geschrieben : | Natürlich nur schwarz, weil diese Komponente keine Druckausgabe hat, die etwas anderes ermöglicht. |
Ja, so ist es...
Perlsau hat folgendes geschrieben : | Ich bezweifle, daß die Delphi-IDE mit dieser Komponente gestrickt wurde ... |
Sicherlich nicht, so meinte ich es auch nicht!
Perlsau hat folgendes geschrieben : | Ich habe bislang noch nie irgend einen Highlight-Text aus einer meiner Anwendungen heraus drucken müssen, |
Musste ich auch noch nicht, und brauchen werde ich das sicher auch nie! Ich dachte einfach, wäre schön, wenn man es hinbekommt, aber ich kann gut damit leben, wenn nicht!
_________________ gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!
|
|
|