我在哪里可以找到wdSetProperty(R包R2wd)的`属性`列表

时间:2014-02-16 14:56:58

标签: r com ms-word

我想在wdSetProperty中更改从右到左语言(例如阿拉伯语和波斯语)的Complex Script字体,但我不知道如何找到此属性的名称。我应该在哪里找到COM连接到MS-Word的可用属性列表?

require(R2wd)

wdGet()
wdTitle("Title")
wdBody("This is in normal font")
wdSetProperty(c("Font","Name"),"Garamond")
wdSetProperty(c("Font","Size"),20)
wdWrite("This is in 14pt Garamond\n")
wdNormal("This switches back to Normal")

wdBody("تست")
wdSetProperty(c("Font","Name"),"XB Niloofar")
wdSetProperty(c("Font","Size"),20)
wdWrite("سلام\n")
wdNormal("تست")

正如您所看到的,上面的示例更改了拉丁字体的字体而不是复杂脚本的字体。

Font for Latin Text Changed not for Complex Script

我还想要direction(从右到左与从左到右)的属性。

1 个答案:

答案 0 :(得分:1)

我找到了解决问题的方法,但我希望找到完整的参考资料。

要找到我想要的属性的名称,我就这样做了:

  • 在Word中打开新文档
  • 在不设置方向或字体的情况下编写段落
  • 从“开发人员”选项卡“代码”部分录制新宏:
    enter image description here
  • 选择段落并单击“字体”部分中的右下箭头:
    enter image description here
  • 更改复杂脚本的字体
  • 点击段落部分中的右下箭头
    enter image description here
  • 更改段落的方向
  • 停止录制宏
  • 请参阅此宏的VBA代码

这样我发现:

  • 复杂脚本的字体通过Font.NameBi
  • 更改
  • 段落方向ParagraphFormat.ReadingOrder

因此,我的问题的答案是:(0表示RTL,1表示ReadingOrder中的LTR

require(R2wd)

wdGet()

wdBody("تست")
wdSetProperty(c("Font","NameBi"),"XB Niloofar")
wdSetProperty(c("Font","Size"),20)
wdSetProperty(c("ParagraphFormat","ReadingOrder"),0)
wdWrite("سلام\n")
wdNormal("تست")