更改范围元素的字体大小

时间:2012-04-28 11:56:24

标签: python com word-vba

我有以下Python代码,它应该更改Microsoft Word文档的特定范围的字体:

word = client.Dispatch("Word.Application")
word.Visible = 0
word.DisplayAlerts = 0
doc = word.Documents.Open("d:/test2.docx")
par = doc.Paragraphs    
par(1).Range.InsertParagraphAfter()
rng = par(2).Range    
rng.Text = u"works just fine"
rng.Font.Size = 30
rng.Font.Name = "Georgia"

当分配给rng.Text的字符串是英语但是当它在时,它工作正常 波斯语,例如rng.Text=u"سلام"或希伯来语rng.Text=u"אקדיא",字体设置未应用且无效。我不知道这是否是一个编码问题。有什么想法如何在字符串不是英文时设置字体设置吗?

2 个答案:

答案 0 :(得分:0)

格鲁吉亚不是unicode字体;它没有您尝试使用的字符,因此无法应用字体设置。尝试使用支持unicode的字体(我相信Tahoma和Lucida Sans会这样做),看看是否有效。

答案 1 :(得分:0)

Font.Size属性适用于从左到右的语言。 对于从右到左的语言,如波斯语或希伯来语MS Word VBA提供了一个特殊的SizeBi属性。 因此,在您的代码中,而不是

rng.Font.Size = 30

rng.Font.SizeBi = 30