0

我想使用richText 方法将对象文本分配为rtf 文本。我对 rtf 中的表格有一个奇怪的行为。

使用相同的代码 == 表格出现在 Windows XP 中对象的文本中,但未出现在 Windows 7 中。这是 Windows 7 中的已知问题吗?

            Object o = current



             o."Object Text" = richText("{\\rtf1 \\viewkind4 
            {\\colortbl;\\red0\\green0\\blue0;}
            {\\stylesheet
                {\\s1\\fs20 heading 1;}
                {\\s2\\fs20 heading 2;}
                {\\s17\\fs20 Body Text;}
                {\\s22\\fs20 List Bullet;}
            }
            {\\info}


            \\pard\\plain \\s17 \\fs20 {Here is a table:\\par}

            \\trowd\\trhdr\\trqc\\trbrdrt\\brdrs\\brdrw30\\trbrdrb\\brdrs\\brdrw30\\trbrdrl\\brdrs\\brdrw30\\trbrdrr\\brdrs\\brdrw30\\trbrdrh\\brdrs\\brdrw15\\trbrdrv\\brdrs\\brdrw15\\plain\\pard\\s17 \\fs20 \\trgaph70\\intbl 
            \\clbrdrt\\brdrs\\clbrdrb\\brdrs\\clbrdrl\\brdrs\\clbrdrr\\brdrs\\cellx4530
            \\clbrdrt\\brdrs\\clbrdrb\\brdrs\\clbrdrl\\brdrs\\clbrdrr\\brdrs\\cellx9060 \\pard\\plain \\b\\qc \\intbl{Column One\\cell }\\pard\\plain \\b\\qc \\intbl{Column Two\\cell }\\row 

            \\trowd\\trqc\\trbrdrt\\brdrs\\brdrw30\\trbrdrb\\brdrs\\brdrw30\\trbrdrl\\brdrs\\brdrw30\\trbrdrr\\brdrs\\brdrw30\\trbrdrh\\brdrs\\brdrw15\\trbrdrv\\brdrs\\brdrw15\\plain\\pard\\s17 \\fs20 \\trgaph70\\intbl 
            \\clbrdrt\\brdrs\\clbrdrb\\brdrs\\clbrdrl\\brdrs\\clbrdrr\\brdrs\\cellx4530
            \\clbrdrt\\brdrs\\clbrdrb\\brdrs\\clbrdrl\\brdrs\\clbrdrr\\brdrs\\cellx9060 \\pard\\plain \\s17 \\fs20 \\intbl{Item One\\cell }\\pard\\plain \\s17 \\fs20 \\intbl{Value One\\cell }\\row 

            \\trowd\\trqc\\trbrdrt\\brdrs\\brdrw30\\trbrdrb\\brdrs\\brdrw30\\trbrdrl\\brdrs\\brdrw30\\trbrdrr\\brdrs\\brdrw30\\trbrdrh\\brdrs\\brdrw15\\trbrdrv\\brdrs\\brdrw15\\plain\\pard\\s17 \\fs20 \\trgaph70\\intbl 
            \\clbrdrt\\brdrs\\clbrdrb\\brdrs\\clbrdrl\\brdrs\\clbrdrr\\brdrs\\cellx4530
            \\clbrdrt\\brdrs\\clbrdrb\\brdrs\\clbrdrl\\brdrs\\clbrdrr\\brdrs\\cellx9060 \\pard\\plain \\s17 \\fs20 \\intbl{Item Two\\cell }\\pard\\plain \\s17 \\fs20 \\intbl{Value Two\\cell }\\row 

            \\trowd\\trqc\\trbrdrt\\brdrs\\brdrw30\\trbrdrb\\brdrs\\brdrw30\\trbrdrl\\brdrs\\brdrw30\\trbrdrr\\brdrs\\brdrw30\\trbrdrh\\brdrs\\brdrw15\\trbrdrv\\brdrs\\brdrw15\\plain\\pard\\s17 \\fs20 \\trgaph70\\intbl 
            \\clbrdrt\\brdrs\\clbrdrb\\brdrs\\clbrdrl\\brdrs\\clbrdrr\\brdrs\\cellx4530
            \\clbrdrt\\brdrs\\clbrdrb\\brdrs\\clbrdrl\\brdrs\\clbrdrr\\brdrs\\cellx9060 \\pard\\plain \\s17 \\fs20 \\intbl{Item Three\\cell }\\pard\\plain \\s17 \\fs20 \\intbl{Value Three\\cell }\\row 

            \\pard\\plain \\s17 \\fs20 {\\par}

            }")



             string attr =  o."Object Text"
             print attr 

这是Windows XP中的截图

在此处输入图像描述

这在 7

在此处输入图像描述

4

1 回答 1

1

当我使用您的代码时,我看到了与您相同的问题。但是,当我在 Windows 7 中将 RTF 表从 XP 复制到 DOORS 时,该表显示正常。所以我运行了一个简短的脚本来看看 RTF 代码有什么不同:

Object o = current
print richText(o."Object Text")

这是输出:

{\\rtf1\\ansi\\ansicpg1252\\deff0{\\fonttbl{\\f0\\fnil\\fcharset0 Tahoma;}}
{\\*\\generator Msftedit 5.41.21.2510;}\\viewkind4\\uc1\\trowd\\trgaph70\\trpaddl70\\trpaddr70\\trpaddfl3\\trpaddfr3
\\cellx4530\\cellx9060\\pard\\intbl\\qc\\lang1033\\b\\f0\\fs20 Column One\\cell Column Two\\cell\\row\\trowd\\trgaph70\\trpaddl70\\trpaddr70\\trpaddfl3\\trpaddfr3
\\cellx4530\\cellx9060\\pard\\intbl\\b0 Item One\\cell Value One\\cell\\row\\trowd\\trgaph70\\trpaddl70\\trpaddr70\\trpaddfl3\\trpaddfr3
\\cellx4530\\cellx9060\\pard\\intbl Item Two\\cell Value Two\\cell\\row\\trowd\\trgaph70\\trpaddl70\\trpaddr70\\trpaddfl3\\trpaddfr3
\\cellx4530\\cellx9060\\pard\\intbl Item Three\\cell Value Three\\cell\\row\\pard\\par
}

我在想您的代码中可能缺少一些标签,这将使其能够在 Windows 7 和 XP 上运行。如果你用这个代码替换你的 RTF,它在 XP 和 7 中都可以工作。

于 2013-08-23T12:32:26.287 回答