AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Rave - PDF mit Grafik pixelig und zu groß
Thema durchsuchen
Ansicht
Themen-Optionen

Rave - PDF mit Grafik pixelig und zu groß

Ein Thema von TUX_der_Pinguin · begonnen am 26. Mai 2009 · letzter Beitrag vom 3. Jun 2009
Antwort Antwort
TUX_der_Pinguin

Registriert seit: 1. Jun 2005
Ort: Anholt (NRW)
609 Beiträge
 
Delphi 11 Alexandria
 
#1

Rave - PDF mit Grafik pixelig und zu groß

  Alt 26. Mai 2009, 11:05
Hallo,

ich habe immer noch ein Problem mit meinem Rave Report, ich erzeuge zur Laufzeit eine Grafik (MetaFile) dieses übergebe ich an
einen Report um den Report entweder auszudrucken oder als PDF abzuspeichern, es klappt auch soweit bis auf eine Sache.

Die Grafik ist zu pixelig, d.h. zoomt man im PDF immer näher so werden Linien und Texte pixelig dargestellt, was noch zu
verschmerzen wäre wenn die so erzeugte PDF Datei nicht viel zu groß wäre.

Erstelle ich den Report und drucke ihn über einem PDF Druckertreiber aus, so ist die erzeugte PDF Datei weder pixelig noch
zu groß, die Dateigröße ist dann ca. 20-30KB. Speicher ich den gleichen Report über mein Programm als PDF Datei ab so wird
die Grafik pixelig und die PDF Datei ist über 400 KB groß.

Irgendwie schafft der Druckertreiber (z.B. PDF Creator) die Grafik als Vektor Grafik darzustellen. Jedoch die zur Laufzeit
erzeugte Grafik ist eine pixel Grafik trotz Metafile. (Ich hatte gedacht ein MetaFile wäre automatisch eine Vektorgrafik)

Ich hoffe jemand hat eine idee wie ich das ganze besser in den Griff bekomme. Also meine Ziele sind keine pixelige Grafik
und die Dateigröße soll gleich bzw. ungefähr gleich dem PDF Druckertreiber sein.


Das MetaFile wird wie folgt erzeugt und an den Report übergeben.

Delphi-Quellcode:
procedure TfrmGraph.RvCustConTAGraphGetRow(Connection: TRvCustomConnection);
var
  MemStream : TMemoryStream;
  DotsPerInch : Word;
  Wmf : TMetaFile;
  WmfCanvas : TMetaFileCanvas;

begin
  //init
  DotsPerInch := RvRenderPDF.MetafileDPI;

  Wmf := TMetaFile.Create;
  try
    try
      Wmf.Enhanced := True;

      //Größe
      Wmf.SetSize(fMmToPx(1800, DotsPerInch), fMmToPx(1220, DotsPerInch));

      //Zeichenfläche erstellen
      WmfCanvas := TMetaFileCanvas.Create(Wmf, 0);
      try

        //Grafik zeichnen...

      finally
        WmfCanvas.Free;
      end;

      //Zu Testzwecken wird das Bild gespeichert
      //Die hier erzeugte Datei ist ebenfalls pixelig beim heranzoomen (Datei größe ca. 350 KB)
      Wmf.SaveToFile(glLocalAppDir+'bla.emf');
     
      //Bild in Report laden...
      MemStream := TMemoryStream.Create;
      try
        Wmf.SaveToStream(MemStream);
        Connection.WriteBlobData(MemStream.Memory^, MemStream.Size);
      finally
        MemStream.Free;
      end;

    except
      on EOutOfResources do begin
        //Fehlermeldung...
      end;
    end;{try..except}

  finally
    Wmf.Free;
  end;{try..finally}

end;

Ich hab schon das Forum rauf und runter durchsucht und bisher nix gefunden ausser einem Beitrag mit ähnnlichem Problem,
jedoch auch ohne Lösung. Der Beitrag (Rave - RvRenderPDF und Metafiles) ist von Stephan.


mfg

TUX
  Mit Zitat antworten Zitat
Keldorn

Registriert seit: 6. Mär 2003
Ort: Meißen
876 Beiträge
 
Delphi 10.1 Berlin Professional
 
#2

Re: Rave - PDF mit Grafik pixelig und zu groß

  Alt 26. Mai 2009, 11:38
Hallo

Zitat:
DotsPerInch := RvRenderPDF.MetafileDPI
probiers mal andersrum, bzw erhöhe den Wert von MetafileDPI vorher.
Der ist Standardmäßig nur 300DPI und das fand ich recht wenig. Das scheint allerdings auch bewußt so zu sein, mit höheren DPI-Zahlen und mehr-Seiten hatte ich so meine Probleme. Die PDF´s sind bei mir auch so (nervig) groß.

Evtl helfen Dir die Links von Merlin weiter.

Gruß Frank

Lükes Grundlage der Programmierung:
Es wird nicht funktionieren
(Murphy)
  Mit Zitat antworten Zitat
TUX_der_Pinguin

Registriert seit: 1. Jun 2005
Ort: Anholt (NRW)
609 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Rave - PDF mit Grafik pixelig und zu groß

  Alt 26. Mai 2009, 11:51
DotsPerInch := RvRenderPDF.MetafileDPI Das ist nur dafür da das ich die Grafik mit einer vorgegebenen DPI Zahl erstellen bzw. zeichnen kann.
Der wert steht zur Zeit auf 600 und erhöhe ich diesen Wert auf 1200 erhalte ich die Meldung zu wenig Speicher
so wie du. Nur selbst wenn es ginge bringt mir das ja nichts da die PDF Datei ja dann noch größer würde
anstatt kleiner.

Naja irgendwie scheint es mir das man mit MetaFile keine Vektorgrafik erzeugen kann bzw. die bei der Übergabe zum
Rave Report verloren geht und dort in eine Pixelgrafik umgewandelt wird und somit das ganze so riesig wird.
  Mit Zitat antworten Zitat
TUX_der_Pinguin

Registriert seit: 1. Jun 2005
Ort: Anholt (NRW)
609 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Rave - PDF mit Grafik pixelig und zu groß

  Alt 3. Jun 2009, 14:38
Hmm so langsam muß ich dieses Problem in den griff bekommen, es kann doch nicht sein das eine via Rave Report erzeugte PDF
Datei 10 mal oder noch größer ist als eine Datei mit einem PDF Druckertreiber.

Gibt es vielleicht irgendwie die möglichkeit direkt im Rave zu zeichnen!? So das der Report dann das gemalte als Vektorgrafik
ansieht und nicht mehr als Pixelgrafik.
  Mit Zitat antworten Zitat
Antwort Antwort


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 21:36 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