AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Vektor Format anzeigen/drucken

Vektor Format anzeigen/drucken

Ein Thema von Gruber_Hans_12345 · begonnen am 5. Nov 2007 · letzter Beitrag vom 24. Nov 2007
Antwort Antwort
Seite 3 von 10     123 45     Letzte » 
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.426 Beiträge
 
Delphi 2007 Professional
 
#21

Re: Vektor Format anzeigen/drucken

  Alt 6. Nov 2007, 10:07
@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)
Gruss Hans

2B or not 2B, that is FF
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#22

Re: Vektor Format anzeigen/drucken

  Alt 6. Nov 2007, 10:45
Hallo,

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

Gruß
xaromz
I am a leaf on the wind - watch how I soar
  Mit Zitat antworten Zitat
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.426 Beiträge
 
Delphi 2007 Professional
 
#23

Re: Vektor Format anzeigen/drucken

  Alt 6. Nov 2007, 10:53
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>
Gruss Hans

2B or not 2B, that is FF
  Mit Zitat antworten Zitat
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.426 Beiträge
 
Delphi 2007 Professional
 
#24

Re: Vektor Format anzeigen/drucken

  Alt 9. Nov 2007, 08:54
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)
Gruss Hans

2B or not 2B, that is FF
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#25

Re: Vektor Format anzeigen/drucken

  Alt 9. Nov 2007, 09:37
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
I am a leaf on the wind - watch how I soar
  Mit Zitat antworten Zitat
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.426 Beiträge
 
Delphi 2007 Professional
 
#26

Re: Vektor Format anzeigen/drucken

  Alt 9. Nov 2007, 10:52
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?
Gruss Hans

2B or not 2B, that is FF
  Mit Zitat antworten Zitat
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.426 Beiträge
 
Delphi 2007 Professional
 
#27

Re: Vektor Format anzeigen/drucken

  Alt 9. Nov 2007, 12:02
@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
  FPath.AddString(FText, Length(FText), FF, FontStyle, GetFontSize, MakePoint(X - 18.5*(fFontHeight / 100), Y - FFontHeight), SF);
Gruss Hans

2B or not 2B, that is FF
  Mit Zitat antworten Zitat
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.426 Beiträge
 
Delphi 2007 Professional
 
#28

Re: Vektor Format anzeigen/drucken

  Alt 9. Nov 2007, 15:49
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 ...
Gruss Hans

2B or not 2B, that is FF
  Mit Zitat antworten Zitat
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.426 Beiträge
 
Delphi 2007 Professional
 
#29

Re: Vektor Format anzeigen/drucken

  Alt 9. Nov 2007, 16:33
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 ...
Angehängte Grafiken
  
Gruss Hans

2B or not 2B, that is FF
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#30

Re: Vektor Format anzeigen/drucken

  Alt 9. Nov 2007, 16:48
Hallo,

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

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 von Gruber_Hans_12345:
gibt es irgendwo eine dokumentation zu GDI+?
[msdn]GDI+[/msdn]

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 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 von Gruber_Hans_12345:
ich vermute mal ich muß da irgendwas mit der matrix machen oder?
Das hast Du ja inzwischen selbst rausgefunden.

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
I am a leaf on the wind - watch how I soar
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:27 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