rtf内のフォントサイズをいじる

装飾情報の塊であるRtf。いじるとすぐ壊れるのでアンタッチャブルなRtf。
解析したところRtfのフォントサイズは\fs〇〇という形式で指定されていて、〇〇にはフォントサイズの2倍の数値が入っているようです。
例えば各フォントサイズを一律で1.2倍に変更したい場合はこうじゃ。

    Dim rvRtf As string = "{\rtf1\ansi\ansicpg932\deff0\deflang1033\deflangfe1041{\fonttbl{\f0\fnil\fcharset128 MS UI Gothic;}}{\colortbl ;\red0\green128\blue0;}\viewkind4\uc1\pard\cf1\lang1041\f0\fs20\'82\'d2\'82\'bf\'82\'e3\'82\'a4\par\fs24\'82\'d2\'82\'a9\'82\'bf\'82\'e3\'82\'a4\par\fs28\'82\'e7\'82\'a2\'82\'bf\'82\'e3\'82\'a4\par}"
    Dim rvFindIdx As Integer = 1
    Dim rvVal As Integer
    Dim rvFindFsList As New List(Of Integer)
    Dim rvZoomFontSize As String
    Dim rvZoomRatio As Single = 1.2

    'rtf内の[\fs]を探し、続く数値をリストに格納
    Do Until rvFindIdx = 0
        rvFindIdx = InStr(rvFindIdx, avRtf, "\fs")
        rvInstrCnt += 1
        rvVal = Val(avRtf.Substring(rvFindIdx + 2, 3))
        If rvFindFsList.Contains(rvVal) = False AndAlso rvVal > 0 Then rvFindFsList.Add(rvVal)
        If rvFindIdx > 0 Then rvFindIdx += 1
    Loop

    'フォントサイズを計算し、大きくした値でreplaceする
    If rvFindFsList.Count > 0 Then
        '降順に並び替え
        rvFindFsList.Sort()
        rvFindFsList.Reverse()

        For I As Integer = 0 To rvFindFsList.Count - 1
            rvZoomSize = CInt(rvFindFsList(I) * rvZoomRatio)
            rvRtf = Replace(rvRtf , "\fs" & CStr(rvFindFsList(I)), "\fs" & rvZoomSize)
        Next
    End If

うーむ、結構使えるんじゃないかな!
おしまい。