2012-04-28 3 views
0

У меня есть следующий код 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"אקדיא", настройки шрифта не применяются и не действуют. Я не знаю, является ли это проблемой кодирования или нет. Любые идеи, как я могу установить параметры шрифта, когда строка не на английском?

ответ

0

Грузия не является шрифтом юникода; у него нет символов, которые вы пытаетесь использовать, поэтому настройки шрифта не могут быть применены. Попробуйте шрифт, поддерживающий unicode (я считаю, Tahoma и Lucida Sans do) и посмотреть, работает ли это.

+0

Я пробовал другие шрифты (особенно те, которые сделаны на персидском языке), но не повезло до сих пор. вы проверили это? –

0

Font.Size - собственность для языков слева направо. Для языков с правом налево, таких как персидский или иврит. MS Word VBA предоставляет специальное свойство SizeBi. Таким образом, в вашем коде, вместо

rng.Font.Size = 30 

записи

rng.Font.SizeBi = 30 
Смежные вопросы