Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Vektor Format anzeigen/drucken (https://www.delphipraxis.net/102812-vektor-format-anzeigen-drucken.html)

Gruber_Hans_12345 5. Nov 2007 12:34


Vektor Format anzeigen/drucken
 
Hallo

Ich muß mit Delphi ein (irgendeines) Vektorformat anzeigen können, dieses dann auf einen Canvas drucken können (somit auf Preview, Drcuker, PDF Export)

dazu brauche ich natürlich ein Format, das ich mit irgendwelchen tools (CorelDraw, inkscape und co) vernünftig erzeugen/konvertieren lässt und auch in delphi importieren lässt.
Es sollte Linien/kreise/freihand und co kennen, eingebettetet bilder (jpg/png) und texte

am anfang hätte ich es mit EMF/WMF probiert, da man das ja ganz gut öffnen kann in delphi, aber leider habe ich kein vernünftiges programm gefunden, das emf richtig erstellen kann (CorelDraw patzt da zb bei den Texten, die positioniert diese irgendwo - übereinander oder mit abstand, der nicht da ist)

jetzt bin ich auf der suche nach svg - sieht vom format her ganz gut aus, aber Importer/Viewer sind nicht so viele vorhanden, habe zwar einen gefunden,aber weiss nicht ob der nun gut ist oder nicht ....

Kennt wer bzw verwendet wer einen guten Importer für Vektor Grafik Format?

das ganze muß mit sourcecode verfügbar sein (darf natürlich was kosten, zwar nicht wie die sachen von leadtools (2k euro) aber "normale" preise sind ok)
für SVG habe ich die "CAD Import VCL" gefunden

mkinzler 5. Nov 2007 12:36

Re: Vektor Format anzeigen/drucken
 
Nimm SVG, dann kannst du notfalls auch mit einem Texteditor editieren.

sakura 5. Nov 2007 12:38

Re: Vektor Format anzeigen/drucken
 
Zitat:

Zitat von mkinzler
Nimm SVG, dann kannst du notfalls auch mit einem Texteditor editieren.

Und welche gute Delphikomponente kann SVG importieren und anzeigen?

...:cat:...

xaromz 5. Nov 2007 12:44

Re: Vektor Format anzeigen/drucken
 
Hallo,
Zitat:

Zitat von sakura
Und welche gute Delphikomponente kann SVG importieren und anzeigen?

Ich! Hier! Hier!
Ist denn in diesem Forum immer noch nicht jedem bekannt, dass ich da ein paar SVG-Komponenten im Angebot habe? Ich muss wohl mehr Werbung machen... :stupid:

Oh, ich sehe gerade, Du fragst nach guten Komponenten. Ich habe aber doch nur sehr gute. (War das jetzt schon genug Werbung?)

Gruß
xaromz

Gruber_Hans_12345 5. Nov 2007 12:49

Re: Vektor Format anzeigen/drucken
 
Zitat:

Zitat von xaromz
Hallo,
Zitat:

Zitat von sakura
Und welche gute Delphikomponente kann SVG importieren und anzeigen?

Ich! Hier! Hier!
Ist denn in diesem Forum immer noch nicht jedem bekannt, dass ich da ein paar SVG-Komponenten im Angebot habe? Ich muss wohl mehr Werbung machen... :stupid:

Oh, ich sehe gerade, Du fragst nach guten Komponenten. Ich habe aber doch nur sehr gute. (War das jetzt schon genug Werbung?)

Gruß
xaromz

vielleicht könntest einen zweiten download anbieten mit einer guten Komponente ;)

ne, habe zwar ne weile rumgesucht, sowohl hier als auch google, aber deine nicht gefunden, werde mir mal alles downloaden und angucken

auf den ersten blick siehts gut aus, auf den zweiten blick, funktioniert bei meinem test svg mit deinem testprogramm das Zoomen nicht ...

xaromz 5. Nov 2007 12:51

Re: Vektor Format anzeigen/drucken
 
Hallo,
Zitat:

Zitat von Gruber_Hans_12345
auf den ersten blick siehts gut aus, auf den zweiten blick, funktioniert bei meinem test svg mit deinem testprogramm das Zoomen nicht ...

vergiss den Zoom. Das Demoprogramm ist schon etwas älter und hat so seine Probleme. In den Comments auf meiner Seite steht da noch was zu.

Gruß
xaromz

Gruber_Hans_12345 5. Nov 2007 13:28

Re: Vektor Format anzeigen/drucken
 
uihhh .... hmmm .... ab welcher delphi version läuft das den?

glaub das wird viel arbeit, das ganz auf d6 zu portieren .... (class in records)

xaromz 5. Nov 2007 13:46

Re: Vektor Format anzeigen/drucken
 
Hallo,

programmiert habe ich das in Delphi 2006. Aber TBounds ist die einzige Struktur, die Record-Funktionen benutzt. Dass lässt sich auch leicht mit entsprechenden Funktionen lösen.

Gruß
xaromz

Gruber_Hans_12345 5. Nov 2007 14:34

Re: Vektor Format anzeigen/drucken
 
ok, das hab ich mal

kannst mir noch kurz sagen, wie ich nun ein SVG, das eine A4 Seite darstellen soll richtig und positionsgetreu wieder auf den drucker bringe?

habe mal so angefangen ...

Delphi-Quellcode:
    if PrintDialog1.Execute then begin
        temp       := TPrinter.Create;
        //temp.PrinterIndex  := PrintDialog1.
        temp.BeginDoc;

        //x      := temp.Canvas.ClipRect;
        bounds.X       := 0;
        bounds.Y       := 0;
        bounds.Width   := temp.PageWidth;
        bounds.Height  := temp.PageHeight;
       
        SVGImage1.SVG.PaintTo(temp.Canvas.Handle, bounds, m, 0);
        temp.EndDoc;
        temp.Free;
    end;
(allerdings stimmt dann am ausdruck nicht wirklich was - ist viel zu klein .... )
in welchen einheiten braucht der die bounds?
zuwas kann ich der druck routine noch zusätzlich rechtecke mit angeben?

Gruber_Hans_12345 5. Nov 2007 14:52

Re: Vektor Format anzeigen/drucken
 
hmmm, gibt es bei Texte irgendetwas zu beachten?

habe mit Inkscape mal ein SVG erzeugt, die Linien bekomme ich rein, aber die Texte nicht?

werde es dann mal mit CorelDraw probieren

[edit]mit Coreldraw kommend ie Texte auch mal gut an (ob die 100% passen, werde ich erst sehen, wenn ich das drucken mal im griff habe)

xaromz 5. Nov 2007 15:32

Re: Vektor Format anzeigen/drucken
 
Hallo,

das Drucken ist ein Problem, weil der Drucker nicht auf Pixel eingestellt ist. Hier musst Du den Umweg über GDI+ gehen:
Delphi-Quellcode:
var
  Bounds: TGPRectF;
  Graphics: TGPGraphics;
begin
  Printer.BeginDoc;
  Bounds.X       := 0;
  Bounds.Y       := 0;
  Bounds.Width   := Printer.PageWidth;
  Bounds.Height  := Printer.PageHeight;

  Graphics := TGPGraphics.Create(Printer.Canvas.Handle);
  try
    Graphics.SetPageUnit(UnitPixel); // <-- Das hier schaltet die Einheit um
    Graphics.SetSmoothingMode(SmoothingModeAntiAlias);
    SVG.PaintTo(Graphics, Bounds, nil, 0);
  finally
    Graphics.Free;
  end;
  Printer.EndDoc;
end;
Die zusätzlichen Rects sind Update-Regions und werden normalerweise nicht benötigt. Die sind nur für das optimierte Zeichnen in Windows vorhanden.

Zitat:

Zitat von Gruber_Hans_12345
hmmm, gibt es bei Texte irgendetwas zu beachten?

habe mit Inkscape mal ein SVG erzeugt, die Linien bekomme ich rein, aber die Texte nicht?

werde es dann mal mit CorelDraw probieren

[edit]mit Coreldraw kommend ie Texte auch mal gut an (ob die 100% passen, werde ich erst sehen, wenn ich das drucken mal im griff habe)

Wenn Du da Probleme hast (ich verwende immer Illustrator ab Version CS2), dann lad' einfach 'mal ein Bild hoch und ich guck drüber.

Gruß
xaromz

Gruber_Hans_12345 5. Nov 2007 16:09

Re: Vektor Format anzeigen/drucken
 
Liste der Anhänge anzeigen (Anzahl: 1)
danke für die hilfe, also die seite kann ich ausdrucken, allerdings muß ich die ganze seite etwas verschieben, da der drucker ränder hat, und ich das bild an position -4, -4 drucken muß zb

Die erste seite druckt nun das SVG richtig aus (allerdings noch verschoben)
meine zweite seite wäre ein versuch, das ganze zuerst in ein MetaFile zu schreiben und dieses dann etwas versetzt an den drucker zu schicken, allerdings kommt da nur eine leere seite raus

Delphi-Quellcode:
        temp.BeginDoc;
        grPrinter := TGPGraphics.Create(temp.Canvas.Handle);
        try
            grPrinter.SetPageUnit(UnitMillimeter);
            grPrinter.SetSmoothingMode(SmoothingModeAntiAlias);
            SVGImage1.SVG.PaintTo(grPrinter, Bounds, nil, 0);
        finally
            grPrinter.Free;
        end;
        temp.EndDoc;


        Graphics := TGPMetaFile.Create;
        SVGImage1.SVG.PaintTo(Graphics, Bounds, nil, 0);

        temp.BeginDoc;
        grPrinter  := TGPGraphics.Create(temp.Canvas.Handle);
        grPrinter.SetPageUnit(UnitMillimeter);
        grPrinter.SetSmoothingMode(SmoothingModeAntiAlias);
        grPrinter.DrawImage(Graphics, -4, -4);
        grPrinter.Free;
        temp.EndDoc;

        Graphics.Free;
zu den texten, habe ein problem : und zwar stimmt die positionierung nicht, er schreibt texte teilweise übereinander bzw zu weit zusammen

wenn du dir mal das beispiel anguckst (beim text : Firmenbuchgericht bzw den Teil mit dem flughafen)

mkinzler 5. Nov 2007 16:11

Re: Vektor Format anzeigen/drucken
 
Bild kann nicht angezeigt werden

Gruber_Hans_12345 5. Nov 2007 16:14

Re: Vektor Format anzeigen/drucken
 
Zitat:

Zitat von mkinzler
Bild kann nicht angezeigt werden

ja, ich weiss, ist eine .svg datei (hab sie als .zip hinzugefügt ...)

mkinzler 5. Nov 2007 16:30

Re: Vektor Format anzeigen/drucken
 
Wenn du die Datei in einem Texteditor anzeigen lässt, siehst du auch warum: die y-Position ist fast identisch:
Code:
 <text x="5.8918" y="9.6632" class="fil1 fnt0">Firma GmbH</text>
  <text x="18.0433" y="9.6632" class="fil1 fnt1"> · Ein Unternehmen der Holding</text>
  <text x="5.8918" y="12.4894" class="fil1 fnt1">Strasse, Ort und eventuell Land, </text>
  <text x="61.15" y="12.4894" class="fil1 fnt1"> Tel.: haben keine, eMail: [email]office@woauchimmer.com[/email], http://www.wieauchimmer.com</text>
  <text x="5.8918" y="15.2856" class="fil1 fnt1">Geschäftsführung: möchtegerne, Sitz: neine stehe Erfüllungsort und Gerichtsstand: wo auch immer</text>
  <text x="94.7042" y="15.2856" class="fil1 fnt1">, Firmenbuchgericht: haben keines</text>
  <text x="35.4986" y="12.4894" class="fil1 fnt2">Flughafen TESTFlughafen,</text>

Gruber_Hans_12345 5. Nov 2007 16:41

Re: Vektor Format anzeigen/drucken
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von mkinzler
Wenn du die Datei in einem Texteditor anzeigen lässt, siehst du auch warum: die y-Position ist fast identisch:
Code:
 <text x="5.8918" y="9.6632" class="fil1 fnt0">Firma GmbH</text>
  <text x="18.0433" y="9.6632" class="fil1 fnt1"> · Ein Unternehmen der Holding</text>
  <text x="5.8918" y="12.4894" class="fil1 fnt1">Strasse, Ort und eventuell Land, </text>
  <text x="61.15" y="12.4894" class="fil1 fnt1"> Tel.: haben keine, eMail: [email]office@woauchimmer.com[/email], http://www.wieauchimmer.com</text>
  <text x="5.8918" y="15.2856" class="fil1 fnt1">Geschäftsführung: möchtegerne, Sitz: neine stehe Erfüllungsort und Gerichtsstand: wo auch immer</text>
  <text x="94.7042" y="15.2856" class="fil1 fnt1">, Firmenbuchgericht: haben keines</text>
  <text x="35.4986" y="12.4894" class="fil1 fnt2">Flughafen TESTFlughafen,</text>

ja, die texte sind auch in der selben zeile, daher gleich y-positionen
an y-positinen passt auch alles, nur in x gibts die probleme, das sich die texte überschreiben z.B.: die zwei texte überschreiben sich (das , Firmenbuchgericht sollte nach dem wo auch immer stehen, aber der "," fängt schon beim 2ten m von immer an)

Code:
  <text x="5.8918" y="15.2856" class="fil1 fnt1">Geschäftsführung: möchtegerne, Sitz: neine stehe Erfüllungsort und Gerichtsstand: wo auch immer</text>
  <text x="94.7042" y="15.2856" class="fil1 fnt1">, Firmenbuchgericht: haben keines</text>

wenn man die svg mit inkscape oder corel aufmacht, dann passt alles, wie es ist

ich vermute, das hier die ausgabe des textes nicht 100% orignalgetreu ist, daher überschreiben sich die texte

xaromz 5. Nov 2007 16:51

Re: Vektor Format anzeigen/drucken
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

ich habe Dein Bild mal in Opera geöffnet. Da sieht das so aus wie auf dem angehängten Screenshot.
In Illustrator überschneiden sich die Texte auch etwas, allerdings beklagt er sich auch über eine fehlende Schrift (Arial Narrow).

Nachdem ich mir Dein Bild im Quellcode angesehen habe, muss ich folgendes anmerken:
Du verwendest da einen eingebetteten Font (nämlich Arial Narrow). Das unterstützt meine Komponente bisher nicht.
Du verwendest CSS-Stylesheets. Auch das kann meine Komponente bisher nicht.

Gruß
xaromz

Gruber_Hans_12345 5. Nov 2007 17:03

Re: Vektor Format anzeigen/drucken
 
Liste der Anhänge anzeigen (Anzahl: 1)
hallo

also bei mir ist es egal, ob ich die schriftart einbette oder nicht (da diese schriftart auf meinem rechner installiert ist, sieht der ausdruck immer gleich aus)
das mit dem css? funktioniert nicht?

bei mir zeigt er aber die schriftarten genau so an, wie die in dem css definiert wurden (Also die sachen fett, die fett sind und so weiter)
aber auch, wenn ich das ganze ohne css speichere, also die font attribute direkt in jeden text reinspeichern lasse, dann sieht das ganze so aus wie vorher

habe mal :
*) ohne CSS, direkt in die Texte als Attribute
*) Schriftart nicht eingebettet
*) Schriftart in Arial gewandelt

das resultat ist das gleiche wie vorher, er überschreibt sich texte

Gruber_Hans_12345 5. Nov 2007 17:06

Re: Vektor Format anzeigen/drucken
 
Liste der Anhänge anzeigen (Anzahl: 2)
so, hier mal den vergleich, beides auf meinem rechner einmal mit IE7 und einmal mit der SVG Library

Gruber_Hans_12345 5. Nov 2007 17:30

Re: Vektor Format anzeigen/drucken
 
Liste der Anhänge anzeigen (Anzahl: 2)
also, das problem ist, das der text mit der SVG Lib länger wird, als er original sein sollte ....

habe mal einen screenshoot mit kontrolllinien ausgegeben ...



[edit]habe auch mal eine SVG mit Adobe Illustrater CS 2 erzeugt, aber selbes Resultat :(

Gruber_Hans_12345 6. Nov 2007 10:07

Re: Vektor Format anzeigen/drucken
 
@xaromz: siehst noch eine chance, die SVG Import Library so zu ändern, das die Schriften richtig gedruckt werden wie von den anderen Programmen (Coreldraw, Inkscape, IE, firefox, AI)?

Das Problem ist, das ich habe immer einiges an text, und die müssen doch einigermassen exakt positioniert und gedruckt werden (das selbe problem habe ich mit EMF/WMF auch, das die positinierung nicht passt - da war aber der export von corel schuld)

xaromz 6. Nov 2007 10:45

Re: Vektor Format anzeigen/drucken
 
Hallo,

momentan habe ich keine rechte Idee, was das Problem ist. Ich schau mir das aber noch mal genauer an.

Gruß
xaromz

Gruber_Hans_12345 6. Nov 2007 10:53

Re: Vektor Format anzeigen/drucken
 
Zitat:

Zitat von xaromz
Hallo,

momentan habe ich keine rechte Idee, was das Problem ist. Ich schau mir das aber noch mal genauer an.

Gruß
xaromz

wäre toll, wenn du was finden würdest ...
(hattest du schon mal ein svg, wo die texte richtig gerendert wurden - also, wo das ende eines textes auch positionsgetreu sein mußte?)

wenn du irgendeine hilfe brauchst - einfach melden

das ist jetzt der part aus dem svg mit dem einfachen text
Code:
<text x="5.8918" y="12.3474" fill="#131516" font-weight="normal" font-size="2.4694" font-family="Arial">Strasse, Ort und eventuell Land, </text>

Gruber_Hans_12345 9. Nov 2007 08:54

Re: Vektor Format anzeigen/drucken
 
hallo xaromz

hattest du schon mal zeit zu schauen, ob dieser fehler behebbar ist?
wenn nicht, werde ich mich wohl oder übel nach einem anderen format oder eine andere komponente umsehen müssen :(

(nur sind die meisten SVG Komponenten nicht alleine erhältlich sondern immer in verbindung mit anderen CAD Komponenten und kosten dann gleich mal an die 1000 euro, und das ist eindeutig viel zu viel)

ich brauche das ganze "nur", um eine druckvorlage zu machen, also, wenn ein Report gedruckt werden soll, dann soll zuvor auf jede A4 seite dieses SVG gedruckt werden, wo statische Informationen zum betrieb sind, daher ist mir das format eigetnlich egal, es sollte nur eines sein, was Linien und co kann, Schriften und Grafiken (PNG, JPG), aber das ganze sollte gleich aussehen wie in einem standardprogramm zb CorelDraw oder Illustrator, damit man sagen kann, CorelDraw aufmachen -> das ganze als SVG mit folgenden einstellungen speichern und dann siehts im program gleich aus! (und bei EMF und WMF geht das zb nicht)

xaromz 9. Nov 2007 09:37

Re: Vektor Format anzeigen/drucken
 
Hallo,

ich habe mir das angesehen und konnte in meinem Quellcode keinen Fehler feststellen. Ich weiß also leider nicht, warum das anders aussieht als in anderen Programmen. Wenn ich was neues weiß, werde ich mich melden.

Gruß
xaromz

Gruber_Hans_12345 9. Nov 2007 10:52

Re: Vektor Format anzeigen/drucken
 
hab mir noch mal ein paar sachen angeschaut ...


die Höhe der Schrift passt 100%
die y-Position der Schrift passt auch 100%

aber schon die x-StartPosition also der linke wert der schrift passt absolut nicht (da ist ein versatz von 3mm drinnen)
und dann noch die breite die statt 108.5mm 112mm hat

(das mit einer Schrift mit Schriftgröße Arial 48)

aber der linke versatz müsste doch etwas leichter zu finden sein oder?

gibt es irgendwo eine dokumentation zu GDI+?

hab mir mal den source etwas angeschaut, und die texte werden da ja mit TGPGraphicsPath.AddString ausgegeben, gibt es eine möglichkeit in GDI+ einen Text "ganz normal" auszugeben, also ohne Path einfach einen text an Position (x, y) auszugeben (vielleicht macht dieses Path da ein paar komische sachen mit dem text)


edit:
hab mir mal angeschaut, was da alles berechnet wird
also ein Textfeld exportiert, und einen rahmen drumherumgemacht
der rahmen hat genau die abmessungen von width="111.455" height="12.1121"
das Textfeld bekommt bei SetSize die Werte (120,9 * 21,03) und FontHeight berechnet er auf 15,329

warum rechnet das MeasureText so einen großen Rahmen drum herum? -> deshalb sind die Startpsitionen schon mal falsch
gibt es da noch wo einstellungen dafür?

Gruber_Hans_12345 9. Nov 2007 12:02

Re: Vektor Format anzeigen/drucken
 
@xaromz

ist es möglich den Text, der geladen wird zu stauchen?
ich möchte probieren, ob es möglich ist, wenn ich den text immer mit einem faktor stauche (entweder fix oder fontheight oder fontsize abhängig) ob dann das richtige ergebnis rauskommt - wäre ein versuch?

ich vermute mal ich muß da irgendwas mit der matrix machen oder?

kannst mir vielleicht kurz den weg weisen ;)


edit: also den offset von x bekomme ich so schon mal fast aufs pixel genau hin
Delphi-Quellcode:
  FPath.AddString(FText, Length(FText), FF, FontStyle, GetFontSize, MakePoint(X - 18.5*(fFontHeight / 100), Y - FFontHeight), SF);

Gruber_Hans_12345 9. Nov 2007 15:49

Re: Vektor Format anzeigen/drucken
 
tja, ich habe zwar absolut keine ahnung warum ich diese faktoren brauche (habe die jetzt mal mit testen rausbekommen) aber das ergebnis sieht schon mal zu 99% gut aus (ganz kleine abweichungen sind noch drinnen) - werde es noch mal mit mehr texte probieren

Delphi-Quellcode:
  scale := 0.971;

  M := TGPMatrix.Create;
  M.Reset;
  M.Translate(-0.184*fFontHeight, 0, MatrixOrderAppend);
  M.Scale(scale, 1, MatrixOrderAppend);
  M.Translate((1-scale)*(X), 0, MatrixOrderAppend);
  fPath.transform(M);
  M.Free;
ich weiss, ich könnte die zwei translate zusammenfassen, aber so ist es wenigstens etwas übersichtlich ...

Gruber_Hans_12345 9. Nov 2007 16:33

Re: Vektor Format anzeigen/drucken
 
Liste der Anhänge anzeigen (Anzahl: 2)
so .... ein großes problem habe ich mit dem text selber noch

und zwar wird bei dem Wort "Test" das e unterschiedlich weit zum T gezeichnet (bei Corel wird das e etwas ins T geschoben) bei GDI+ wird das e vom T weiter weggeschoben, das erklärt jetzt noch die Probleme mit verschiedenen Texten

Ist das irgendeine Einstellung? also das die buchstaben nicht vom äussersten punkt berechnet werden sollen?

hab die zwei screenshoots angehängt, damits klarer ist was ich meine ...

xaromz 9. Nov 2007 16:48

Re: Vektor Format anzeigen/drucken
 
Hallo,

ein interessantes Selbstgespräch führst Du hier :wink: .
Ich antworte mal auf ein paar Dinge:

Zitat:

Zitat von Gruber_Hans_12345
die Höhe der Schrift passt 100%
die y-Position der Schrift passt auch 100%

aber schon die x-StartPosition also der linke wert der schrift passt absolut nicht (da ist ein versatz von 3mm drinnen)
und dann noch die breite die statt 108.5mm 112mm hat

Seltsam. Sehr seltsam.

Zitat:

Zitat von Gruber_Hans_12345
gibt es irgendwo eine dokumentation zu GDI+?

[msdn]GDI+[/msdn]

Zitat:

Zitat von Gruber_Hans_12345
hab mir mal den source etwas angeschaut, und die texte werden da ja mit TGPGraphicsPath.AddString ausgegeben, gibt es eine möglichkeit in GDI+ einen Text "ganz normal" auszugeben, also ohne Path einfach einen text an Position (x, y) auszugeben (vielleicht macht dieses Path da ein paar komische sachen mit dem text)

Klar kann man den Text auch einfach so ausgeben (TGPGraphics.DrawText), aber das Ergebnis ist das selbe. Den Pfad brauche ich aber, um Fläche und Umrandung einzeln zeichnen zu können.

Zitat:

Zitat von Gruber_Hans_12345
warum rechnet das MeasureText so einen großen Rahmen drum herum? -> deshalb sind die Startpsitionen schon mal falsch
gibt es da noch wo einstellungen dafür?

Keine Ahnung, warum der Rahmen so groß ist, einstellen kann man da IMHO nichts.

Zitat:

Zitat von Gruber_Hans_12345
ich vermute mal ich muß da irgendwas mit der matrix machen oder?

Das hast Du ja inzwischen selbst rausgefunden.

Zitat:

Zitat von Gruber_Hans_12345
und zwar wird bei dem Wort "Test" das e unterschiedlich weit zum T gezeichnet (bei Corel wird das e etwas ins T geschoben) bei GDI+ wird das e vom T weiter weggeschoben, das erklärt jetzt noch die Probleme mit verschiedenen Texten

Ist das irgendeine Einstellung? also das die buchstaben nicht vom äussersten punkt berechnet werden sollen?

Das ist offensichtlich ein Kerning-Problem. Ich glaube aber, auch das kann man nicht einstellen.

Ich schau mal, ob ich am Wochenende etwas Zeit habe, da noch gründlicher zu forschen.

Gruß
xaromz

xaromz 13. Nov 2007 08:27

Re: Vektor Format anzeigen/drucken
 
Hallo,

Zitat:

Zitat von xaromz
Ich schau mal, ob ich am Wochenende etwas Zeit habe, da noch gründlicher zu forschen.

Nur ein kleiner Statusbericht, ich hatte bisher leider keine Zeit, mir das anzuschauen.

Gruß
xaromz

Gruber_Hans_12345 14. Nov 2007 08:50

Re: Vektor Format anzeigen/drucken
 
weiss eigetnlich wer, wie man das nennt, wenn zB CorelDraw "Te" schreibt, das das e etwas unter das T geschoben wird, aber wenn man zb Tk schreibt nicht?

Denn, wenn ich CorelDraw (oder AI) das ausreden kann, das er das e unters T schiebt, dann wäre mir auch schon geholfen

mir ist nur wichtig, das ich ein 99.9% überinstimmung zwischen CorelDraw und der importierten Grafik erhalte ...

alzaimar 14. Nov 2007 09:02

Re: Vektor Format anzeigen/drucken
 
Man nennt das 'Kerning'. Der optische Abstand zwischen einem 'T' und einem 'e' ist anders, als zwischen einem 'H' und einem 'e', da das 'H' rechts mit einem Strich abschließt. Damit die Schrift leichter zu lesen ist und 'Te' scheibar genauso dicht ist, wie 'He', schiebt man das 'e' beim 'Te' etwas nach links. Im Übrigen ist das ein Qualitätsmerkmal. Handgebissene Amateurfonts haben so etwas nicht und dann sieht ein Text irgendwie 'sch****' aus...

Für jeden Font existiert eine Tabelle mit allen Kombinationen aus 2 Buchstaben, für die der Fontdesigner ein Kerning festgelegt hat. Einige Renderer meinen, das das Kerning nur bei Überschriften eine Rolle spielt. Eventuell hat Corel diese Einstellung.



Windows/GDI sollte das aber können.

Gruber_Hans_12345 14. Nov 2007 09:14

Re: Vektor Format anzeigen/drucken
 
ah, danke das wort habe ich gesucht "kerning" ... das es ein qualitätsfeature ist, war mir schon bewusst, da es ja besser aussieht, wenn er das macht, nur mir ist es eben wichtig, das es auch funktioniert, und wenn der SVG Import/GDI+ oder wer auch immer das nicht kann, und die software das so ausgibt, dann hat man das problem, das der text mehr platz braucht, und den nächsten text überschreibt, und DAS sieht dann noch blöder aus.

Habes es mal mit 08/15 TextOut probiert, da macht er kein kerning

Delphi-Quellcode:
    Image1.Canvas.Font.Name    := 'Arial';
    Image1.Canvas.Font.Size    := 200;
    Image1.Canvas.TextOut(0, 0, 'Te');
    Image1.Canvas.TextOut(0, 250, 'He');
werde mich aber mal auf die suche machen mit kerning und corel und gdi ...

alzaimar 14. Nov 2007 09:18

Re: Vektor Format anzeigen/drucken
 
Mich würde Dein Rechercheergebnis interessieren.

xaromz 14. Nov 2007 09:32

Re: Vektor Format anzeigen/drucken
 
Hallo,

Heureka!
Auf meiner Seite (http://www.mwcs.de/libraries.html) gibt's eine neue Version (v0.64). Ich glaube, damit ist der Fehler Geschichte.

Zur Erklärung: In GDI+ kann man ein StringFormat festlegen. Dieses muss vom Typ "GenericTypographic" sein, damit das Kerning funktionert.

Gruß
xaromz

Gruber_Hans_12345 14. Nov 2007 10:07

Re: Vektor Format anzeigen/drucken
 
Zitat:

Zitat von xaromz
Hallo,

Heureka!
Auf meiner Seite (http://www.mwcs.de/libraries.html) gibt's eine neue Version (v0.64). Ich glaube, damit ist der Fehler Geschichte.

Zur Erklärung: In GDI+ kann man ein StringFormat festlegen. Dieses muss vom Typ "GenericTypographic" sein, damit das Kerning funktionert.

Gruß
xaromz

ja, die positionen und die breiten stimmen jetzt - und das ganze ohne faktoren ;)

aber das problem mit dem kerning Te <-> Th ist noch immer da

habe auch noch nicht wirklich viel infos dazu gefunden, da ja kerning nur den abstand zwischen buchstaben definiert, aber nicht, das zwischen Te weniger abstand als zwischen Th ist ...

xaromz 14. Nov 2007 10:37

Re: Vektor Format anzeigen/drucken
 
Hallo,

Zitat:

Zitat von Gruber_Hans_12345
aber das problem mit dem kerning Te <-> Th ist noch immer da

Sicher? Bei mir sah das ganz gut aus.

Zitat:

Zitat von Gruber_Hans_12345
habe auch noch nicht wirklich viel infos dazu gefunden, da ja kerning nur den abstand zwischen buchstaben definiert, aber nicht, das zwischen Te weniger abstand als zwischen Th ist ...

Doch, genau das definiert Kerning. Siehe auch Unterschneidung in der Wikipedia.

Gruß
xaromz

Gruber_Hans_12345 14. Nov 2007 10:54

Re: Vektor Format anzeigen/drucken
 
habe es mit folgendem probiert ...

Code:
<text x="6.0803" y="2.6891" fill="#1F1A17" font-weight="normal" font-size="2.4694" font-family="Arial">AVAVAVAV</text>
  <text x="6.0803" y="5.4478" fill="#1F1A17" font-weight="normal" font-size="2.4694" font-family="Arial">AAAAVVVV</text>
da sollte der erste Text nicht so viel platz brauchen wie der zweite ... (im coreldraw ist das ca ein ganzes A)

hab auch extra geschaut, das er im sourcecode in das GenericTypograph reinspringt ... (macht er)

hast du ein SVG, wo er das kerning richtig macht?

stimm, auf der wiki seite ist es so eindeutig beschreiben, aber wenn du nach Corel und kerning suchst, dann siehts so aus, als ob die mit kerning den default abstand zwischen den buchstaben meinen, also nicht den speziellen, bei A und V.

torud 16. Nov 2007 09:01

Re: Vektor Format anzeigen/drucken
 
Ich habe nicht einmal die Komponenten installiert bekommen... :(


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:21 Uhr.
Seite 1 von 3  1 23      

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