Beiträge von JSchwaab

    Neues Thema zu meinem Umstiegsprojekt:

    Auf Basis von WPTools4 wurden in unser Darstellungsformat auch Tabellenbegrenzungen übertragen.

    Die Begrenzungen wurden mit WPTools4 zunächst wie folgt berechnet:

    Das hat so bisher für unsere RTF-Dateien funktioniert und müsste jetzt irgendwie wieder als Feature restauriert werden.
    Soweit ich da sehe, hat sich da einiges geändert.

    Ich habe bisher lediglich eine Codeskelet hinbekommen, um durch die Paragraphen der Tabelle zu traversieren. Bei
    der Größe des Zellen-Rechtecks komme ich dann schon nicht mehr weiter...

    Vielen Dank.

    Die Übertragung in unser Darstellungsformat sieht jetzt schon deutlich besser aus.

    Farbe, Fontsize, Fontname werden jetzt in unserem Zeichnungsformat korrekt dargestellt.

    Die Positionen der Texte sind fast richtig. Was mir aufgefallen ist: Schon im Rtf-Dialog von WPTools
    ist die Formatierung in gleicher Weise verschoben wie bei den von uns konvertierten Text-Elementen.
    Die Konvertierung scheint also okay zu sein. Allerdings ist die rechte Texttbegrenzung im alten Programm
    geringfügig anders (WPTools4 so ca. 7,8 cm, mit WPTools8 so ca. 8,2cm).

    Ist da etwas bekannt? Das kann natürlich auch eine Änderung in unserem Code sein. Ich suche da noch,
    bin aber für Tipps dankbar.

    Hat leider noch nicht funktioniert.

    Der folgende Code liefert nur den Default-Wert zurück, aber nicht den korrekten Wert.

    Code
    function EntityDataFromAttr(aRichText: TWPRichText;
       Par: TParagraph; aPt: TPoint; aRightX: longint; aStr: string): TEntityData;
    var
       FontSize : single;
       DefaultFontSize : Integer;
    ...
    begin   if not aRichText.AttrHelper.GetFontSize(FontSize) then begin
          FontSize := par.AGetDefInherited(WPAT_CharFontSize, 1101) / 100;
       end;

    Danke. Das hat mich etwas weiter gebracht. Es sieht jetzt schon deutlich besser aus. Die Sache mit dem Writer schaue ich mir an, wenn das optische Ergebnis im bisherigen Ansatz einigermaßen stimmt.

    Ich bekomme jetzt die Text-Attribute über den AttributeHelper. Allerdings nicht immer. In einem Testbeipspiel erhalte ich für die Zeichen des ersten Paragraph
    in folgenden GetFontSize Aufruf ein False. Im nächsten Paragraph habe ich einen anderen Font und eine anderes Size gesetzt. Ab dort erhalte ich gültige FontSize-Wert.

    Wann passiert so etwas und wo bekomme ich dann alternativ meine FontSize her?

    Code
       if not aRichText.AttrHelper.GetFontSize(FontSize) then begin
          FontSize := 11;
          Assert(false);
       end;

    Ich versuche gerade sehr alten Code von WPTools4 auf WPTools8 zu heben.

    Im wesentlichen dient der Code dazu einen Paragraph Zeichen für Zeichen durchzuscannen und
    Text mit gleichen Textattributen zusammengefasst als Text-Elemente für eine eigenes Format
    zu konvertieren.

    In WPTools4 konnte dazu für jedes Zeichen auf sein TAttr zugegriffen werden (siehe alter Code unten)

    Mittlwerweile sind diese Werte offenbar über CharAttr[i] zugreifbar. Allerdings nur als Index-Wert (Cardinal).

    Was ist nun die korrekte Methode, um vom CharAttr[i] auf die Textattribute zu kommen?