Schrift in Programm einbinden

Für allgemeine Fragen zur Programmierung, welche nicht! direkt mit Lazarus zu tun haben.
Ich934
Lazarusforum e. V.
Beiträge: 317
Registriert: So 5. Mai 2019, 16:52
OS, Lazarus, FPC: ArchLinux und Windows mit FPCUPdeluxe (L: 2.0.X, FPC 3.2.0)
CPU-Target: x86_64, i386
Wohnort: Bayreuth

Schrift in Programm einbinden

Beitrag von Ich934 »

Hallo,

gibt es eine Möglichkeit, eine Schrift direkt in das Programm einzubinden?

Alle Lösungen die ich gefunden habe, funktionieren nur unter Windows (z.B. das hier).

Hintergrund: Ich habe eine kommerzielle Schrift, welche ich _in_ einem Programm verwenden darf aber eben nicht auf einem Kundensystem installieren darf. Zielsystem ist Windows und Linux. Windows würde ja gehen aber für Linux habe ich keine Lösung.

Vielen Dank und schöne Grüße
Tipp für PostgreSQL: www.pg-forum.de

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

Re: Schrift in Programm einbinden

Beitrag von theo »

Kommt drauf an, was man unter "installieren" versteht.
Im Prinzip kannst du ein Shell Script machen, wie

Code: Alles auswählen

cp myFont.ttf ~/.fonts
fc-cache -vf
./project1
und beim Programmende den Font in ~/.fonts wieder löschen.
Nur so eine Idee, hab's nicht ausprobiert.

Benutzeravatar
Winni
Beiträge: 1577
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: Schrift in Programm einbinden

Beitrag von Winni »

Hi!

Ich habe vor 4 oder 5 Jahren genau nach einer Lösung für dieses Problem gesucht.

Antwort für Linux: Es geht nicht.

Trick um die Bedenkenträger zu Umschiffen:

TTF-Font als Resource in das Binary einbinden. Beim Programmstart auspacken, einen unverdächtigen Namen wählen und in ein wenig gebräuchliches Font-Verzeichnis kopieren - das ist je nach Distro verschieden, aber es gibt mehrere. Font -Cache refreshen:

sudo fc-cache -fv.

fertig.


Da ein Font keinerlei Schaden auf dem Ziel-System anrichten kann , sehe ich kein Problem.

Aber es ist klar : Außerhalb Deiner Bedingungen.

Winni

PS.: Gerade gefunden:

"Every font that is located under any subdirectory of /usr/share/fonts and ~/.fonts is scanned and added to the collection you're able to use."

Du kannst also unter einem der zwei erwähnten Verzeichnisse ein Verzeichnis .unsichbar erzeugen und den Font da reinkopieren. Unter Suse Tumbleweed existieren unter /usr/share/fonts schon mal diese Verzeichnisse:

symbol
100dpi
75dpi
Type1
cyrillic
encodings
misc
ghostscript (nur ein Link)

Im Verzeichnis 100dpi befinde sich schon mal etwa 200 Dateien. Jedenfalls genug um eine Datei zu verstecken.

Ich934
Lazarusforum e. V.
Beiträge: 317
Registriert: So 5. Mai 2019, 16:52
OS, Lazarus, FPC: ArchLinux und Windows mit FPCUPdeluxe (L: 2.0.X, FPC 3.2.0)
CPU-Target: x86_64, i386
Wohnort: Bayreuth

Re: Schrift in Programm einbinden

Beitrag von Ich934 »

Danke für das Feedback. Bei einer freien Schrift würde ich das machen und hätte keinerlei Probleme damit. Da es sich um eine kommerzielle Schrift handelt und ich hier entsprechende Lizenzbedingen zu beachten habe, ist diese Methode leider nicht optimal.

Dann muss ich mir doch etwas anderes überlegen. Schade :(
Tipp für PostgreSQL: www.pg-forum.de

Benutzeravatar
Winni
Beiträge: 1577
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: Schrift in Programm einbinden

Beitrag von Winni »

Hi!

Für diverse teure Schriften gibt es "lookalike" Nachbauten, die Open Source sind.

Vielleicht hilft der Tipp ja weiter.

Winni

Timm Thaler
Beiträge: 1224
Registriert: So 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded
CPU-Target: Raspberry Pi 3

Re: Schrift in Programm einbinden

Beitrag von Timm Thaler »

Gnihihi! Garantiert wieder diese deutsche Autohersteller der sich seinen individuellen Font entwickelt ließ und ihn in seinen Programmen wegen der "Corporate Identity" unbedingt haben muss - aber niemand anders darf ihn haben.

Als Grafik / Vektorgrafik einbinden und kompliziert per User Drawing auf die GUI pappen. Lass es Dir gut bezahlen, die wollen das so.

Benutzeravatar
Winni
Beiträge: 1577
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: Schrift in Programm einbinden

Beitrag von Winni »

Hi!

Na VAG ist es nicht. Die wurde vom VW-Konzern etwa 1990 freigegeben, weil sie es nicht mehr benutzt haben. Dass die lustigen 1970er vorbei waren hat VW dann auch schon gemerkt.

Muss aber nicht eine Auto-Konzern sein: Berthold hat noch viele, teure Schriften, für die Du ein teures License Agreement unterschreibst. Das war das einzige Kapital, als die ehemalige Foto-Satz-Belichter Firma pleite ging. Weil DTP erfunden war.

Winni

Benutzeravatar
Winni
Beiträge: 1577
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: Schrift in Programm einbinden

Beitrag von Winni »

Timm Thaler hat geschrieben:
Di 22. Feb 2022, 22:35
Als Grafik / Vektorgrafik einbinden und kompliziert per User Drawing auf die GUI pappen. Lass es Dir gut bezahlen, die wollen das so.
Hi!

Das verstösst auch gegen das Copyright.
Wie immer man dazu steht.

Winni

Ich934
Lazarusforum e. V.
Beiträge: 317
Registriert: So 5. Mai 2019, 16:52
OS, Lazarus, FPC: ArchLinux und Windows mit FPCUPdeluxe (L: 2.0.X, FPC 3.2.0)
CPU-Target: x86_64, i386
Wohnort: Bayreuth

Re: Schrift in Programm einbinden

Beitrag von Ich934 »

Es handelt sich u.A. um die Font Awesome Pro. Die hab ich als OTF vorliegen, aber auch als SVG. SVG ist aber auch so eine Sache. Es gibt zwar die SVG-Buttons, aber die kann ich nicht mit einer Caption kombinieren. Ausserdem schauen diese sehr eigentümlich aus. Also auch nicht optimal.

Dann wird mir nichts anderes übrig bleiben, ausser die notwendigen in ein PNG zu konvertieren und diese zu verwenden.

Trotzdem danke.
Tipp für PostgreSQL: www.pg-forum.de

Timm Thaler
Beiträge: 1224
Registriert: So 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded
CPU-Target: Raspberry Pi 3

Re: Schrift in Programm einbinden

Beitrag von Timm Thaler »

@Winni: Häh? Nein.

So wie ich es verstanden habe, darf und soll er die Schrift ja nutzen. Er darf sie nur nicht auf einem anderen System installieren und damit anderen zugänglich machen.

Owner-Drawn Buttons sind halt für die Usability oft scheisse. Was hat ein Bekannter geflucht, als er das teure Adobe irgendwas auf dem 4k-Monitor öffnete - und die winzigen Menus und winzigen Buttons nicht wiedergefunden hat, weil die GUI nicht skaliert hat. Oder Leute die aus Gründen hohen Kontrast oder dunkles Farbschema einrichten - und dann schwarze Schrift auf schwarzem Grund vorfinden.

Man kann das machen, aber man sollte sich gut überlagen, was da alles dranhängt.

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

Re: Schrift in Programm einbinden

Beitrag von theo »

Irgendwie verstehe ich die Diskussion und die rechtliche Grundlage nicht.
Wenn ein User den Font benutzen darf, der Font aber nicht systemweit installiert werden darf, wo ist dann das Problem?
Dann kommt der Font einfach nach /home/ich/.fonts
Was ist daran rechtlich falsch?

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6216
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Schrift in Programm einbinden

Beitrag von af0815 »

Weil, wie im ersten Post gesagt wird - Einbinden ja, aber nicht installieren.

Das geht schon aber nur unter WIndows. Denjenigen die soetwas definieren ist noch nie ein anderes Betriebssystem als Windows untergekommen.

Theoretisch könntest du den Font auf eine RAM Disk die nur für den User ist, aus einer Resource kopieren und wieder entfernen nachdem dein Programm nicht mehr läuft. Und wenn der Rechner ausgeschalten wird ist der Font weg. Inwieweit das das dann eine installation ist oder nicht - das kann nur ein paar spitzfindige Juristen klären.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
Winni
Beiträge: 1577
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: Schrift in Programm einbinden

Beitrag von Winni »

Hi!

Deshalb empfehle ich ja nach lookalike Fonts zu gucken, die Open Source sind.

Angefangen hat das, als Red Hat einen Designer beauftragte, "Arial" und "Times New Roman" nachzubauen. Diese beiden waren in den frühen Windows-Jahren Standard.

Das Ergebnis war "Liberation sans" und "Liberation serif". Danach sind dann zig Schriften von Microsoft, Adobe, Berthold und sonstwem nachgebaut worden. Du musst ja nur pro Buchstabe einen Pixel verändern. Da das Ganze bei den TTFs in Bezier-Kurven vor sich geht, ist es noch einfacher: Du kannst mal eben mehrere Pixel um 1/4 oder sonstwie verkleinern oder vergrößern.

Font-Design ist spannend, aber nur etwas für geduldige Menschen.

Winni

PS.: Ausnahmsweise hat Wikipedia einen halbwegs intelligenten Artikel darüber:
https://de.wikipedia.org/wiki/Liberation_(Schriftart)

Timm Thaler
Beiträge: 1224
Registriert: So 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded
CPU-Target: Raspberry Pi 3

Re: Schrift in Programm einbinden

Beitrag von Timm Thaler »

Ich hab grad gesehen, dass es auf Linux Mint einen FontAwesome von einem Dave Gandy gibt, der anscheinend über das java-Package eingebracht wird.

https://ubuntu.pkgs.org/18.04/ubuntu-un ... l.deb.html

Ist das der Richtige und wenn ja: Wo ist dann das Lizenzproblem?

Benutzeravatar
Winni
Beiträge: 1577
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: Schrift in Programm einbinden

Beitrag von Winni »

Timm Thaler hat geschrieben:
Do 24. Feb 2022, 04:07
Ich hab grad gesehen, dass es auf Linux Mint einen FontAwesome von einem Dave Gandy gibt, der anscheinend über das java-Package eingebracht wird.

https://ubuntu.pkgs.org/18.04/ubuntu-un ... l.deb.html

Ist das der Richtige und wenn ja: Wo ist dann das Lizenzproblem?

Hi!

Das Lizenzproblem liegt darin, dass FontAwesome für den privaten Gebrauch kostenlos erlaubt ist, aber beim kommerziellen Einsatz kostet die Lizenz 499.- $. Ein gängiges Geschäftsmodel, dass z.B. auch von BASS verwendet wird.

Alternativen zu FontAwesome:

https://lineicons.com/blog/font-awesome-alternatives/


Winni

Antworten