Systemfremde Fonts verwenden

Für allgemeine Fragen zur Programmierung, welche nicht! direkt mit Lazarus zu tun haben.
Antworten
mori
Beiträge: 53
Registriert: Di 24. Okt 2006, 08:31
OS, Lazarus, FPC: Winux (L 1.1.xy FPC 2.7.1.z)
CPU-Target: xxBit
Wohnort: Mixdorf
Kontaktdaten:

Systemfremde Fonts verwenden

Beitrag von mori »

Hallo zusammen,
mir fehlt mal wieder ein Stueck Film! Ich moechte in meiner Application (Win/Linux)
einen (freien) ttf-Font nutzen, der dem System _unbekannt_ ist, aber von mir mitgeliefert wird.
Wie binde ich den Font (die Fontfiles) in die Application ein? Wann/wie und wo bzw. muss ich
den/die Font(s) initialisieren?
Ich moechte diese Schrift nicht ins System integrieren!

Schoenen Ostermontag noch und besten Dank!

MfG mori

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Unter Windows reicht glaub ich tmporäres kopieren in den ordner Fonts unter Linux dürft es schwer werden direkt ttf fonts zu benutzen.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

creed steiger
Beiträge: 957
Registriert: Mo 11. Sep 2006, 22:56

Beitrag von creed steiger »

Linux:
Im Homerverzeichnis befindet sich der .Fonts Ordner.
Wenn du die Schrift da reinkopierst sollte der User sie sofort verwenden können.(Hab ich nur unter KDE probiert).

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Eine Windows ttf font ?
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Benutzeravatar
theo
Beiträge: 10468
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

Scheint so:

Eine neue Truetype-Schrift ACID.TTF installieren Sie in im privaten Font-Verzeichnis folgendermaßen:

cd
cp ACID.TTF .fonts
cd .fonts
fc-cache

Der Befehl fc-cache, im Font-Verzeichnis ausgeführt. aktualisiert bei laufender X-Oberfläche die Cache-Datei im aktuellen Verzeichnis. Nun können Sie die Schrift AcidBath in alle Gnome-Anwendungen nutzen.


http://www.linux-user.de/ausgabe/2005/0 ... index.html

creed steiger
Beiträge: 957
Registriert: Mo 11. Sep 2006, 22:56

Beitrag von creed steiger »

Ich denke schon. Damit

http://www.webpagepublicity.com/free-fo ... tripez.ttf

hab ichs probiert.

Edit:
Denn Font konnte ich gleich danach in KWord benutzen.
Fc-chache o.ä. war nicht nötig(KDE).

kirchfritz
Beiträge: 169
Registriert: Mo 3. Jan 2011, 13:34
OS, Lazarus, FPC: Win10 (L 3.0 FPC 3.2.2)
CPU-Target: 64Bit
Wohnort: Nürnberg

Re: Systemfremde Fonts verwenden

Beitrag von kirchfritz »

Sorry, dass ich diesen scheinbar veralteten Beitrag nochmals öffne.
Der Fragesteller wollte damals wissen, wie man Systemfremde Fonts mit Lazarus verwenden kann ohne sie vorher installieren zu müssen.
Für Linux-Anwender gab es jede Menge Erklärungen dazu, für mich als Windows Anwender/Programmierer war die Antwort "musst die Fonts nach C:\windows\Fonts kopieren glaub ich" nicht sehr überzeugend.
Lazarus kann unter WIN10 nicht einfach mit

Code: Alles auswählen

copyFile('MeinFont.ttf','C:\windows\fonts\MeinFont.ttf,true);'

einen Font kopieren, wegen mangelnder Zugriffsrechte auf dieses SystemVerzeichnis.
Auch ein direktes Kopieren im DOS-Fenster mit

Code: Alles auswählen

 
copy MeinFont.ttf c:\windows\fonts\MeinFont.TTF
 

scheitert an den Zugriffsrechten.

Die Delphi-Beispiele halfen mir weiter und letztendlich hat Folgendes unter Lazarus zum Erfolg geführt:

Code: Alles auswählen

 
program project1;
 
{$mode delphi}
 
uses
  {$IFDEF UNIX}{$IFDEF UseCThreads}
  cthreads,
  {$ENDIF}{$ENDIF}
  Interfaces,
  Forms, Unit1,
  SysUtils,
  jwawinGDI   // <-- wichtig;
 
{$R *.res}
 
var
  sFontFile : String;
begin
  sFontFile := 'Zebra Ztripez.ttf';
  If FileExists(sFontFile) Then
     AddFontResourceEx(PChar(sFontFile), FR_PRIVATE, 0);
  RequireDerivedFormResource:=True;
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end
 


Nur für den Fall, dass es jemanden noch interessiert.

Viele Grüße
Fritz

Antworten