Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Font Einbindung in EMF !? (https://www.delphipraxis.net/119216-font-einbindung-emf.html)

Laplace 22. Aug 2008 11:55


Font Einbindung in EMF !?
 
Guten (Freitag :hello:) Morgen :hi: ,

ich hab' da mal eine Frage bezüglich EMF:

ein Freund einen Windows-Font generiert, in dem die Buchstaben durch Symbole (z.B. Quadrate, Raute, Kreis ...) ersetzt sind. Der Font wird über die API Funktion (AddFontresource) eingebunden und beim beenden des Programms durch (RemoveFontResource) wieder entfernt.

Mit diesen Symbolen zeichne ich Grafiken, die als EMF-Dateien exportiert werden. Solange mein Programm läuft, kann ich die Grafiken natürlich anzeigen. Sobald ich mein Programm beende, wird die Resource natürlich wieder freigegeben und meine Symbole sind dann weg.

Da meine Grafiken auch auf anderen (x-beliebigen) Rechnern angezeigt werden sollen, suche ich daher eine Möglichkeit, den Zeichensatz IN DER EMF-Datei selbst zu speichern, sofern das geht. Ich kann auch nicht einfach den Zeichensatz mitliefern und ihn in's Windoofs-Font Verzeichnis kopieren.

Weiß jemand, ob - und falls ja, wie - ich einen Font in eine EMF-Datei einbauen kann?


Vielen Dank schon mal
Werner

xaromz 22. Aug 2008 12:46

Re: Font Einbindung in EMF !?
 
Hallo,

das Einbinden geht IMHO nicht; das wird auch klar, wenn man sich überlegt, was Metafiles eigentlich sind: da werden nämlich einfach die GDI-Zeichenfunktionen aufgenommen und wieder abgespielt.

Gruß
xaromz

Laplace 22. Aug 2008 14:29

Re: Font Einbindung in EMF !?
 
Hallo xaromz :hi:,

danke für deine Antwort.
Das hatte ich schon befürchte, dass ich diese Art von 'Symbolen' nicht so einfach verwenden kann.

Gruß
Werner

Reinhard Kern 22. Aug 2008 15:51

Re: Font Einbindung in EMF !?
 
Zitat:

Zitat von Laplace
...
Das hatte ich schon befürchte, dass ich diese Art von 'Symbolen' nicht so einfach verwenden kann.

Gruß
Werner

Hallo,

du benutzt ja den Fontrenderer des Betriebssystems, in dem Fall aus Windows GDI. Du köntest die Buchstaben oder auch Texte selbst in eine Bitmap rendern und diese dann ausgeben, aber dabei geht die Skalierbarkeit auf andere Auflösungen verloren, sieht also u.U. nicht schön aus.

Gruss Reinhard

Nachtrag: warum nicht PDF? da gehts.

xaromz 23. Aug 2008 09:56

Re: Font Einbindung in EMF !?
 
Hallo,

es gibt natürlich noch die Möglichkeit, Schriften in Pfade umzuwandeln und direkt als Vektordaten zu verwenden.

Gruß
xaromz

Laplace 24. Aug 2008 09:42

Re: Font Einbindung in EMF !?
 
Hallo Reinhard :) ,

du hast schion recht, das Rastern sieht wirklich besch... aus. Das hatte ich schon über einen virtuellen EMF-Drucker ausprobiert. Die Schrift wird gerastert, und beim Skalieren siehst du die Pixel :pale:.
PDF ist leider nicht möglich, da schon zu viel Arbeit in der Grafikausgabe steckt und die nicht neu programmiert werden soll.

Hallo xaromz :-D ,

vielen Dank, die Textausgabe in Pfade umwandeln und dann ausgeben, das war's !! Die Skalierbarkeit bleibt erhalten und als Sahnehäubchen gibt's Textumriss und Füllung in unterschiedlichen Mustern/Farben noch obendrein - also 'für umme' :bounce1:.

Ich hab' eine Weile gebraucht, um die richtigen Fonteigenschaften (in TLogfont) zu setzen, um auch die von mir ausgewählte Schrift zu bekommen :oops:.
Ich will das morgen nochmal an einem anderen Rechner, wo die Schrift nicht installiert ist, ausprobieren.

Wenn Interesse besteht, kann ich dann den Quelltext hier dann hereinsetzen.


Nochmals Danke
Werner

FAlter 24. Aug 2008 11:24

Re: Font Einbindung in EMF !?
 
Hi,

Zitat:

Zitat von Laplace
Wenn Interesse besteht, kann ich dann den Quelltext hier dann hereinsetzen.

Oder in die CodeLib, falls du es entsprechend aufbereitet bekommst.

Mfg
FAlter

bernau 24. Aug 2008 14:29

Re: Font Einbindung in EMF !?
 
Zitat:

Zitat von Laplace
Wenn Interesse besteht, kann ich dann den Quelltext hier dann hereinsetzen.


Oh ja. Bitte bitte :-)

Laplace 26. Aug 2008 07:42

Re: Font Einbindung in EMF !?
 
Mal ein kurzer Zwischenbericht,

es ist doch etwas komplizierter als ich dachte/herausfand.

Ich bin da auf einen recht subtilen Stolperstein reingefallen :shock:. Ich hatte den Font im Initialization-Abschnitt eingebunden und beim Debuggen zwischenzeitlich an einem Breakpoint abgebrochen. Dadurch wurde der Font nicht mehr entfernt (normal im Finalization-Abschnitt).
Danach lief alles wie 'geschmiert', d.h. so wie ich es gerne gehabt hätte. Nach dem Neustart des PC (ohne Breakpoint) funktionierte es aber nicht mehr.

Ich hab' dann eine andere Variante probiert und bekomme nun den Text in Umrissen, aber noch ohne Füllung. Gibt also noch was zu tun. Ich hab' im Moment beruflich einiges zu tun, werde den Code aber noch vervollständigen und hier herein stellen.


Schönen Tag noch
Werner

P.S. Als Testfont habe ich übrigens einen Digitalfont aus dem WWW benutzt. < Digital Font >

http://up.picr.de/1246004.gif
So in etwa sähe mein Wunschergebnis aus, ohne den Font mitkopieren zu müssen (was gar nicht ginge)


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