我想使用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
答案 0 :(得分:1)
我在使用您的代码时看到了同样的问题。但是,当我将RTF表从XP复制到Windows 7中的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中使用。