Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Nevrona Rave und Printerfonts (https://www.delphipraxis.net/78537-nevrona-rave-und-printerfonts.html)

needatip 6. Okt 2006 16:30


Nevrona Rave und Printerfonts
 
Hallo,
kann mir jemand sagen wie ich mit Rave (benutze Rave BEX 6.0.5) auf einem Matrix Drucker
nur mit den eingebauten Schriftarten druckt ? (Also keine True Type Schriftarten !)
Wie kann ich die auswählen.
z. B. Word zeigt mir diese im Schriftauswahldialog an.
Bei Rave bekomme ich bei der Schriftauswahl (Eigenschaftenfenster Font ...) nur die TT Schriften angezeigt.
Funktioniert das mit Rave überhaupt ?

merlin17 7. Okt 2006 06:11

Re: Nevrona Rave und Printerfonts
 
Hallo,
ganz wichtig:
wenn Du die eingebauten Schriften nutzen willst, funktioniert die Seitenansicht/Preview nicht.

Rave arbeitet im LowLevel mit jedem Font, d.h. Du musst über den FontMaster alle Komponenten
zuordnen. Im Fontmaster gehen alle Schriften!!!!


best regards aus Arizona (vom Nevrona HQ :wink: )


:-) thomas, TeamNevrona

needatip 7. Okt 2006 07:47

Re: Nevrona Rave und Printerfonts
 
Ich benutze für meine Reports Fontmaster, bekomme aber nicht hin, dass Rave Druckerschriftarten verwendet.
Ich habe z.B. den Nadeldrucker OKI Microline 590 als Standarddrucker definiert.
In Word zeigt mir die Schriftauswahl sämtliche Druckerschriftarten wie z.B.
Utility 10cpi
Utility 12cpi
Utility 15cpi
Utility 17cpi
Utility 20cpi
mit einem Druckersymbol vorangestellt.
Bei einem anderen Drucker werden halt dann die entsprechenden Druckerfonts des eingestellten Druckers
angezeigt.
In Rave sehe ich nur die TT Schriften und ein paar ohne TT Zeichen.
Hier handelt es sich aber nicht um die Schriftarten meines Druckers.

Hab ich da jetzt was falsch verstanden bzw. was ist der Low-Level Modus von Rave ?

merlin17 7. Okt 2006 15:27

Re: Nevrona Rave und Printerfonts
 
Guten Morgen,

welche schriften siehst du in der FontMaster-Komponente ?
werfe einfach einmal eine FontMaster-Kompo auf die Seite
und schau in den Eigenschaften die Fonts an, welche angezeigt
werden.

:-) thomas, TeamNevrona

needatip 8. Okt 2006 17:54

Re: Nevrona Rave und Printerfonts
 
Hab ich gemacht.
Es werden dort nur die TT Schriften und die Systemschriften aufgelistet.
Nicht aber die Drucker internen Schriften. (In diesem Fall z. B. vom OKI ML 590)
Hab versucht mit Hilfe von Code Base das zu lösen wie es im Artikel
http://bdn.borland.com/article/0,1410,30329,00.html
steht.

Kann ich den Report nicht im Designer entwerfen und dann den Font per Programmcode mit SetFont zuordnen ?

Wenn ich nämlich folgendes Beistpiel aus obiger Website verwende druckt der Matrixdrucker auch mit der internen
Schriftart (z.B. Utility 12cpi oder Courier 12cpi)

Delphi-Quellcode:
procedure TFormMain.RvSystemPrint(Sender: TObject);
begin
  with Sender as TBaseReport do
  begin
    SetFont('Utility 12cpi', 12);
    GotoXY(1,1);
    Print('Welcome to Code Based Reporting in Rave');
  end;
end;
Eigentlich müsste ich nur per Programmcode dann noch den richtigen Font zuweisen oder geht das nicht wenn man den Bericht schon im
Designer erstellt hat ?

needatip 9. Okt 2006 07:17

Re: Nevrona Rave und Printerfonts
 
Ich habe gelesen, dass auch bei Quickreport die Druckerschriftarten nicht im Font-Dialog angezeigt werden, sondern sind per Programmcode zuzuweisen.
Im Quickreport geht das so.
z. B.
Delphi-Quellcode:
Report1.Report.Font.Name := 'Utility 12cpi';
ähnlich müsste doch das auch mit Rave gehen oder?

Gibt es vielleicht jemand der einen Reportgenerator kennt der die Druckerschriftarten unterstützt?
Es muss ja nicht unbedingt Rave sein, wenn es das nicht kann.

daddy 25. Sep 2007 22:06

Re: Nevrona Rave und Printerfonts
 
* PUSH *


Hallo,

ich habe zur Zeit genau das gleiche Problem mit einem EPSON-Kassendrucker, auf dessen eingebette Schriften ich zugreifen möchte. Diese werden z.B. in Word oder WordPad angezeigt, sobald ich den Drucker ausgewählt habe. Ordne ich einen anderen Drucker zu, sind sie nicht mehr in der Auswahl enthalten.

Im Rave Designer erscheinen Sie dagegen grundsätzlich nicht. Wobei ich da ja eigentlich auch keinen Drucker zuordnen kann (nur eine Präferenz für die spätere Ausführung).

Gibt es eine Lösung für dieses Problem? Kann ich diese Schriftarten irgendwie im Rave Designer sichtbar und auswählbar machen oder ansonsten nachträglich innerhalb des Programms einem Fontmaster zuweisen?

Gruß Daddy

daddy 26. Sep 2007 13:00

Re: Nevrona Rave und Printerfonts
 
Für alle, die es interessiert:

Folgende Lösung für das Problem habe ich inzwischen selber entwickelt.
Ich arbeite im RaveDesigner bei allen Textfeldern, die einen Embedded Font zugewiesen bekommen sollen grundsätzlich mit FontMastern. Diese liegen direkt in Page1 und bekommen einen nach einem festen Schema aufgebauten Namen FontEmbedded_<Name>_<Size>, wobei <Name> der Name des gewünschten Embedded Printerfonts ist und <Size> die zugehörige gewünschte Größe. Im Programm mache ich dann nach dem Open meiner TRvObject-Instanz einen Aufruf an meine unten aufgelistete Prozedur "ChangeRaveFonts". In dieser werden alle Child-Objekte in Page1 gesucht. Es wird geprüft, ob es Objekte des Typs TRaveFontMaster sind und wenn ja, ob ihr Name mit dem Text "EmbeddedFonts_" beginnt. Falls ja, werden Schriftart und Schriftgröße ausgetauscht.

Gruß Daddy

Delphi-Quellcode:
procedure ChangeRaveFonts(RpName: String);
var RP : TRavePage;
    C : TComponent;
    I : Integer;
    T : String;
begin
  RP := TRavePage(RvMain.ProjMan.FindRaveComponent(RpName + '.Page1', NIL));
  if RP <> NIL then
  begin
    for I := 0 to RP.ChildCount do
    begin
      // Ist das Objekt ein Fontmaster?
      if RP.Child[I] is TRaveFontMaster then
      with TRaveFontMaster(RP.Child[I]) do
      begin
        // Beginnt sein Name mit "FontEmbedded_"?
        if SameText(Copy(Name, 1, 13), 'FontEmbedded_') then
        begin
          // Neue Schriftart zuweisen
          T := Copy(Name, 14, 99);
          T := Copy(T, 1, Pos('_', T) - 1);
          Font.Name := T;
          // Neue Schriftgröße zuweisen (Default = 10)
          T := Copy(T, Pos('_', T) + 1, 99);
          Font.Size := StrToIntDef(T, 10);
        end;
      end;
    end;
  end;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:40 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