【问题标题】:Changing the font size of a range element更改范围元素的字体大小
【发布时间】:2012-05-08 22:42:27
【问题描述】:

我有以下 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"אקדיא",字体设置未应用且无效。不知道是不是编码问题。当字符串不是英文时,我可以如何设置字体设置?

【问题讨论】:

    标签: python ms-word com


    【解决方案1】:

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

    【讨论】:

    • 我尝试过其他字体(特别是为波斯语制作的字体),但到目前为止没有运气。你测试过这个吗?
    【解决方案2】:

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

    rng.Font.Size = 30
    

    写

    rng.Font.SizeBi = 30
    

    【讨论】:

      猜你喜欢
      • 2016-06-01
      • 2020-06-25
      • 2015-05-07
      • 1970-01-01
      • 1970-01-01
      • 2011-02-13
      • 1970-01-01
      • 2013-03-27
      • 1970-01-01
      相关资源
      最近更新 更多