Delphi-PRAXiS
Seite 2 von 10     12 34     Letzte »    

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)

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 :(


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:58 Uhr.
Seite 2 von 10     12 34     Letzte »    

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