Beiträge von Peter S.

    Hallo,

    ich habe in der Demo (aktuellste Version) MetaFileOverlay eine Anpassung gemacht, weil ich in meiner Anwendung links ausgerichtete Texte benötige. Die Anpassungen sind in dieser Methode:

    Code
    procedure TMetafileOverlay.Inserttexthere1Click(Sender: TObject);var  t: TPDFDrawObjectRec;  s : AnsiString;begin  FillChar(t, SizeOf(t), 0);  t.grtyp := 100;  t.typparam := 2000; // Textfield, Height = 20  t.ColorText := ColorToRGB( clBlue ); // Text Color  t.ColorPen := ColorToRGB( clYellow ); // Background Color  t.ObjectOptions := 8; // Opaque *** Anpassung//  t.ObjectOptions := 4+8; // Center Text + Opaque  t.ColorBrush := clYellow;  // On page 1  t.PageNo :=  WPViewPDF1.command(COMPDF_GetPageUnderMouse);  // Position of MOUSE on the page:  t.x := WPViewPDF1.command(COMPDF_GetPageLogX);  t.y := WPViewPDF1.command(COMPDF_GetPageLogY);  t.h := 72;  t.w := 72*3;  t.Angle := 0; // Anpassung  t.FontSize := 55*100;  if FontDialog1.Execute then  begin     s := '"Font=' + FontDialog1.Font.Name + '"';     WPViewPDF1.AddDrawObject(wpAddNow, '', t, 'Test', PAnsiChar(s));  end;end;

    Die Darstellung ist dann zunächst korrekt: Links ausgerichtet und am unteren Rand des Bereichs.

    Sobald aber das Objekt gerendet wird:

    Code
    WPViewPDF1.CommandEx(COMPDF_RenderDrawobjects, 4 + 8 + 32 + 64);  // Render  WPViewPDF1.ClearDrawObject(-1, -1);  // and Clear all


    ist der Text horizontal zentriert und am oberen Rand des Bereichs ausgerichtet. Ursache scheint das ClearDrawObject zu sein. Auch die Methode zum Speichern der Veränderungen bewirkt diese Veränderung, obwohl dort kein ClearDrawObject aufgerufen wird.

    Dabei könnte ich noch halbwegs damit leben, dass der Text am oberen oder unteren Rand ausgerichtet ist, aber dass er linksbündig bleibt, ist unbedingt erforderlich.

    Ist das ein Bug oder kann ich das so beeinflussen, dass es korrekt gespeichert wird? Im Falle eines Bugs, wäre ich dankbar für eine kurzfristige Korrektur. Ich vermute den Fehler in der DLL.

    EDIT:
    Ergänzung:
    In der Methode zum Speichern des PDF-Dkumentes "fehlt" ClearDrawObject. Trotzdem habe ich dort den selben Effekt.

    Code
    WPViewPDF1.CommandEx(COMPDF_RenderDrawobjects,  4 + 8 + 32 + 64);
        WPViewPDF1.Plus.SaveToFile(SaveDialog1.FileName);


    Verursacht das SaveToFile den selben Fehler?