Hallo Zusammen,
ich will für die Druckerausgabe die Schriftart einstellen. Dazu habe ich ins Projekt das Package Printer4Lazarus eingebunden. Die generelle Druckeransteuerung funktioniert (also .BeginPage, .NewPage, X- und Y-Auflösung, etc.) gut.
Allerdings wird offensichtlich die Veränderung der Schriftart bei Zuweisung eines anderen Schriftartnamens nicht korrekt umgesetzt:
z.B. Printer.Canvas.Font.Name := 'Comic Sans MS';
führt einfach zur Ausgabe einer serifenlosen Schrift. Interessanterweise funktioniert das Ganze für TPaintBox aber richtig, d.h. die Schriftartdarstellung auf dem Monitor (habe ich als Vorschau implementiert) wird von TPaintBox.Canvas korrekt umgesetzt!
Ich habe auch versucht, einen eigenen TFont zu erzeugen und diesen per .Assign() an den Drucker-Canvas weiterzugeben - leider mit dem selben Null-Resultat.
Hat irgendjemand eine Ahnung, wie man das Problem lösen kann? Was ist der Unterschied zwischen einem Drucker-Canvas und einem sonstigen Canvas???
Lazarus-Version 0.9.28.2, OS Suse Linux 11.3, Drucker ist egal, habe Epson/HP/Brother u.a. versucht.
Linus.
Schriftartdarstellung auf Druckern
-
- Beiträge: 22
- Registriert: Di 19. Okt 2010, 17:23
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
- Wohnort: Kaiserstuhl
Schriftartdarstellung auf Druckern
Wer mehr denkt hat mehr vom Hirn...
Re: Schriftartdarstellung auf Druckern
Ich glaube, das geht nicht.linus hat geschrieben: Hat irgendjemand eine Ahnung, wie man das Problem lösen kann? Was ist der Unterschied zwischen einem Drucker-Canvas und einem sonstigen Canvas???
Unter Linux wird ein Postscript Document erstellt und an den Drucker gesandt. Andere Fonts als die eingebauten sind afaik nicht ladbar (also nur Times, Helvetica, Courier,Symbol).
Was der Unterschied zu einem sonstigen Canvas ist, kannst du in der Unit PostScriptCanvas nachschauen.
Möglicherweise gibt es Lösungen, aber die sind mir nicht bekannt.
-
- Lazarusforum e. V.
- Beiträge: 3178
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: Schriftartdarstellung auf Druckern
Ich könnte mir spontan vorstellen, dass man das Problem nicht löst sondern umgeht. Kann man denn Bitmaps auf den Drucker-Canvas kopieren?theo hat geschrieben:Möglicherweise gibt es Lösungen, aber die sind mir nicht bekannt.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Re: Schriftartdarstellung auf Druckern
Kann man wahrsch. schon, die Frage ist aber, ob die Auflösung für saubere Schrift ausreicht.Socke hat geschrieben:Ich könnte mir spontan vorstellen, dass man das Problem nicht löst sondern umgeht. Kann man denn Bitmaps auf den Drucker-Canvas kopieren?theo hat geschrieben:Möglicherweise gibt es Lösungen, aber die sind mir nicht bekannt.
-
- Lazarusforum e. V.
- Beiträge: 3178
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: Schriftartdarstellung auf Druckern
Wie groß soll die denn sein? 4611686014132421 Pixel (Höhe x Breite) sollte doch wirklich ausreichen...theo hat geschrieben:Kann man wahrsch. schon, die Frage ist aber, ob die Auflösung für saubere Schrift ausreicht.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
-
- Beiträge: 22
- Registriert: Di 19. Okt 2010, 17:23
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
- Wohnort: Kaiserstuhl
Re: Schriftartdarstellung auf Druckern
OK Theo - soweit alles klar, habe die genannte Unit durchgesehen.theo hat geschrieben:Ich glaube, das geht nicht.
Unter Linux wird ein Postscript Document erstellt und an den Drucker gesandt. Andere Fonts als die eingebauten sind afaik nicht ladbar (also nur Times, Helvetica, Courier,Symbol).
Was der Unterschied zu einem sonstigen Canvas ist, kannst du in der Unit PostScriptCanvas nachschauen.
Aber wie machen das dann andere Anwendungen (OO)? Die drucken i.d.R. doch auch über Postscript oder nicht? Der Vorschlag, die Text-Elemente auf einen TGraphic-Nachfahren zu "malen" und dann von dort aus auf den Drucker-Canvas zu kopieren geht sicher, schließlich kann man ja jede x-beliebige Grafik auf den Drucker-Canvas aufbringen. Und dann kann das arme Postscript natürlich nicht mehr anders, als das Schriftbild als Grafik an den Drucker zu übermitteln, weil es jetzt nicht mehr erkennen kann, daß das mal eine Schrift war.
Im Übrigen bin ich mit dem Druckresultat durchaus zufrieden und die implementierten Schriften reichen mir für den Moment völlig aus, ich würde das nur gerne verstehen.
Wer mehr denkt hat mehr vom Hirn...
Re: Schriftartdarstellung auf Druckern
Ich glaube es hat einfach keiner das Font-Embedding programmiert im postscriptcanvas.linus hat geschrieben:ich würde das nur gerne verstehen.
Wahrscheinlich weil es schwierig ist und es niemand so dringend gebraucht hat.
Freiwillige vor!

S.a: http://bugs.freepascal.org/view.php?id=9705" onclick="window.open(this.href);return false;