Announcement

Collapse
No announcement yet.

Richtextbox Fehler beim Speichern mit Schriftgröße 11

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

  • Richtextbox Fehler beim Speichern mit Schriftgröße 11

    Hallo zusammen,

    ich habe eine RTF-Box und speicher den darin formatierten Text in eine .rtf Datei ab.
    Wenn ich diese nun mit Word oder Wordpad öffne, dann hab ich logischer Weise die Formatierung auch dort.
    Nur, wenn ich Schriftgröße 11 wähle, dann habe ich in Word oder Wordpad 11,5.
    Gespeichert wird einfach über RTFBox.SaveFile(Pfad). Da kann ich ja net viel falsch machen, denk ich.

    Hat da jemand ne Ahnung, woran das liegen kann?


    EDIT:

    ich hab mir mal den Schlamasel in der RTF datei angesehn

    Code:
    {\rtf1\ansi\ansicpg1252\deff0\deflang1031{\fonttbl{\f0\fnil\fcharset0 Arial;}}
    \viewkind4\uc1\pard\fs23 Trallala\fs48\par
    }
    Das Rotmarkierte ist definitiv falsch. Es müsste fs22 sein für die Schriftgröße 11. fs23 ist 11,5
    Ich habe keine Ahnung, wie ich das beeinflussen kann

    EDIT 2:

    ich hab die "Fehlerquelle" gefunden.
    Es ist der FontDialog. Er gibt anstelle von Schriftgröße 11 eine größe von 11,25 zurück, was nach vielem Runden 11,5 ergibt, wenn das File geschrieben wird.
    ich müsste an der Stelle irgendwie eingreifen, aber die ganzen Properties von Font sind ReadOnly
    Zuletzt editiert von Andreas Mahr; 16.06.2008, 11:27.

  • #2
    ok, ich glaub, das hat sich erledigt. Ich picke mir den Size Wert raus auf eine Single Variable und pumpe das ganze in einen neuen Font, ordentlich gerundet rein

    Code:
    Public Sub Textfont()
    
            Dim TextfontDialog As New FontDialog
    
            If Not Me.SelectionFont Is Nothing Then
                TextfontDialog.Font = Me.SelectionFont
                If TextfontDialog.ShowDialog = DialogResult.OK Then
                    Dim FName As String = TextfontDialog.Font.FontFamily.Name
                    Dim FSize As Single = Math.Round(TextfontDialog.Font.Size, 0)
                    Dim mFont As New Font(FName, FSize, TextfontDialog.Font.Style)
                    Me.SelectionFont = mFont
                    'Me.SelectionFont = TextfontDialog.Font
                End If
            End If
        End Sub

    Comment


    • #3
      Wie liest du die Fontgröße den aus?
      Bedenke der Wert der Fontgröße ist abhängig davon welche Maßeinheit für die Größe (Unit Property des Fonts) verwendet wird.

      Comment


      • #4
        Originally posted by Ralf Jansen View Post
        Wie liest du die Fontgröße den aus?
        Bedenke der Wert der Fontgröße ist abhängig davon welche Maßeinheit für die Größe (Unit Property des Fonts) verwendet wird.
        hmm...Maßeinheiten benutz ich glaub ich garnicht, bzw. wenn dann die standard.

        Vor meiner änderung wurde da einfach Me.SelectionFont = TextfontDialog.Font gemacht

        Comment

        Working...
        X