Announcement

Collapse
No announcement yet.

TMetafileCanvas als Text - habe ich da eine Chance?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • TMetafileCanvas als Text - habe ich da eine Chance?

    Komme ich irgendwie wieder an den Text (als ASCII, nicht als Grafik), der wie folgt auf einen TMetafileCanvas "gemalt" wurde:

    <PRE>
    with myMetafileCanvas do
    begin
    Font.Height := 30;
    TextOut(10, 10, 'Hello World');
    end;
    </PRE>

    Ich möchte also wissen, dass an den Koordinaten 10, 10 der Text "Hello World" in der bestimmten Schriftgröße steht.

    Hintergrund: Ich würde gerne eine PDF-Ausgabe realisieren und die einfachste <g> Möglichkeit wäre wohl, den "beschrifteten" Canvas als Bitmap in die PDF-Datei zu schreiben...

    Ich denke eher an einen Parser, der den MetafileCanvas nach Text durchsucht und dann in das PDF-Koordinatensystem überträgt - keine triviale Aufgabe, wie mir scheint.

    Stichwort: EnumEnhMetafile...

    Ist so etwas realistisch??? Oder beinhaltet ein Metafile bzw. der MetafileCanvas immer nur Bitmaps?

    TIA für jede Antwort!

    Ralph

  • #2
    Hi<br>es ist eine pixelmap und keine vektorbeschreibungsdatei *g*. Wenn du aber ausser Text noch andere Inhalte hast, musst du ohnehin die Grafik ins PDF transferieren. Also wozu dann die Arbeit :-) <br><br>Michae

    Comment


    • #3
      Wieso ist ein MetaFile Pixel-Orientiert? MetaFiles die wir programmtechnisch erzeugen sind frei skalierbar (solange keine Bitmaps eingebunden sind) und das zeichnet in meinen Augen doch eine Vektorenausgabe aus, oder bin ich hier auf dem Holzweg?<p>
      Schöne Grüße, Mario Noac
      Schöne Grüße, Mario

      Comment


      • #4
        Michael,

        die Vorteile von Text anstatt einer Grafik im PDF sind eine sinnvolle Datigröße und die Behandlung von Text innerhalb von PDF-Dateien überhaupt (Suchfunktion, ...).

        PDF ist schließlich dazu erfunden worden, Text sauber zu layouten... wenn ich da einfach eine große Bitmap reinlege, widerspricht das doch irgendwie dem Gedanken, der hinter dem Ganzen steckt, oder?

        Sicher hätte ich weniger Arbeit damit, aber das kann ja nicht alles ein <g>.

        Ralp

        Comment


        • #5
          Selbst machen ist eine mühselige Arbeit.<BR>
          Wenn ich mir den Quellcode meines PDF-Converter anschaue,<BR>würde ich niemals auf die Idee kommen, so etwas selbst zu machen.<BR>
          Dort wird übrigens u.a. aus einem Metafile ein sauberes PDF erzeugt.<BR>
          Sigber

          Comment


          • #6
            Sigbert,

            sauberes PDF im Sinn von "Text als Text"?

            Das wäre ja toll!!

            Wenn es so etwas bereits gibt, muss man es ja nun wirklich nicht selbst machen... um welchen PDF-Converter handelt es sich denn und zu welchen Konditionen (mit Source?) kann man den wo erwerben?

            Grüße
            Ralp

            Comment


            • #7
              z.B.: http://www.llion.net<BR&gt

              Comment


              • #8
                Danke

                Comment


                • #9
                  Hallo,<br>ich habe mich nicht klar ausgedrückt. Auszug aus Delphi Hilfe:<br>"Mit Metafile referenzieren Sie das Grafikobjekt, wenn es eine Metadatei enthält. Wenn Sie diese Eigenschaft bei einem TPicture-Objekt verwenden, das ein Bitmap oder ein Symbol enthält, wird keine Grafikkonvertierung durchgeführt."<br>Demnach hat man nur Zugriff auf Picture (Pixel).<br><br>Michae

                  Comment


                  • #10
                    @Michael:<BR>
                    Ja sicher, wenn das Metafile, oder irgendetwas anderes in einem TPicture verwendet wird, haben wir letzendlich in der Darstellung nur Pixel, die aber nichts mit dem Format des Metafiles zu tun haben muss. Auf dem Drucker/Bildschirm sind es letzendlich auch nur Pixel.<BR>
                    Die 'richtigen' PDF-Converter lesen aber die tatsächlich enthaltenen <B>GDI-Befehle</B> aus dem Metafile aus.<BR>
                    Sigber

                    Comment


                    • #11
                      Zwischenbericht:

                      Wenn man eine Bitmap in ein Metafile packt, dann hat man weiterhin nur eine Bitmap - im Metafile wird keine Grafikkonvertierung im Sinne einer Umwandlung in eine Vektordarstellung vorgenommen.

                      Wenn ich aber (wie in meinem ersten Posting erwähnt) das Metafile mittels GDI-Funktionen (z.B. TextOut) fülle, dann kann ich auch später noch das Metafile nehmen, mit EnumEnhMetafile analysieren und den Text wieder extrahieren.

                      So weit der Plan <g>.

                      Jetzt muss ich "nur noch" die Text-Records (und natürlich alle anderen auch...) des Metafiles entsprechend auswerten und in PDF-Syntax umwandeln.

                      Mal sehen, ob ich das schaffe!

                      Ralp

                      Comment


                      • #12
                        hm, irgendwie klingt das als würdest Du versuchen den Acrobat Distiller nachzubauen...

                        Grüße Joche

                        Comment


                        • #13
                          Jochen,

                          tja, zumindest in den Funktionen, die ich benötige...

                          Ich habe den Vorteil, dass ich mich auf MetaFiles beschränken kann, die ich in derselben Applikation erstellt habe und darum deren (eingeschränkten) Inhalt kenne.

                          Ich muss also nicht jedes mögliche GDI-Objekt auswerten, sondern kann mich auf Textzeilen und Linien beschränken - mehr kommt in meinen Dokumenten nicht vor.

                          Mittlerweile kann ich den Inhalt des MetaFiles erfolgreich parsen und bin gerade dabei, die Umwandlung in die PDF-Syntax zu schreiben.

                          Ich bin wirklich froh, dass MS die nötigen Informationen in den Metafiles belassen hat, so dass man doch tatsächlich darauf zugreifen kann <g>

                          Comment


                          • #14
                            Geschafft

                            Comment

                            Working...
                            X