Ausdruck von Text mit TA_RIGHT verschiebt sich nach umstellen des Mapping Modes

  • Hallo,


    wir haben mit der Umstellung von WPDF3 auf WPDF4 (Version 4.76.0.0.) noch ein Problem gefunden. Wenn man den Mapping Mode ändert (MM_LOMETRIC) und anschließend einen Text mit TA_RIGHT drucken möcht, wird der Text nach oben verschoben.


    Beispiel:


    SetMapMode(Canvas.Handle, MM_LOMETRIC);

    Canvas.TextOut(X, Y, 'LEFT');

    SetTextAlign(Canvas.Handle, TA_RIGHT);

    Canvas.TextOut(X, Y, 'RIGHT');


    In diesem vereinfachten Beispiel werden die beiden Texte nicht auf die gleiche Höhe gedruckt.

    Wenn Sie wünschen hätte ich auch noch ein Beispiel Delphi Projekt.

  • Das Problem hier ist, dass der Text immer an der oberen Seite verankert ist. PDF verwendet aber immer die Baseline Ausrichtung, die eigentlich für korrekten Textsatz auch sinnvoll ist. Ansonsten hat man immer die Abhängigkeit von Eigenschaften des Fonts.

    wPDF rechnet also intern die Ausrichtung um und dies kann zuweilen zu Problemen führen.


    Verwenden Sie

    wpdf.PDFEngineSetIProp( WPPDF_AlwaysAdjustToBaseline, 0)


    Um diese in v4 eingeführte Umrechnung zu deaktivieren.