2017-04-12 209 views
1

我正在尋找一種將整個文檔的字體更改爲Arial(10pt)的pythonic方式,因爲當前文檔具有幾種字體的混合。有沒有使用python-docx更改word文檔字體的方法?

這可能嗎?

- 在此先感謝! JP

+0

pythonic是什麼意思?似乎與使用document.paragraphs應該讓你得到所有段落和環比在他們 – Srgrn

+0

我正在尋找一個更高級的解決方案,考慮到表及其子結構(行,單元格),也文件則可對。 –

回答

1

有幾種不同的方法可以解決這個問題,因爲這是一個比它最先出現的更復雜的問題。

「視」字型,或者更精確地在Word文本項目「有效」的字體從樣式層次結構幾乎相同的方式CSS適用於HTML計算。

樣式層次結構中的最終級別覆蓋所有較高級別,可直接在運行級別應用格式。所以如果你設置了一個特定的運行時間,那麼無論如何,它都會以這種方式出現。

超過這個水平,你有一段默認格式,字體,段落樣式,承襲風格(應用型風格的基本樣式)和文件默認情況下,可能不是正是爲了。所以你可以看到我關於複雜性的觀點。所有這些事情都需要重新調整,以「正確地」進行(這對於以後的可編輯性來說肯定是有好處的)。

但是,如果你想有一個強力的辦法,只是申請一個明確的字體到文檔中的每個運行。也許會好一點會在每次運行時實際刪除明確的字體設置,讓風格或文檔默認規則的有效字體。

迭代運行看起來像這樣aircode:

document = Document('my-document.docx') 
for paragraph in document.paragraphs: 
    for run in paragraph.runs: 
     font = run.font 
     # ---do font-related things--- 

for table in document.tables: 
    for row in table.rows: 
     for cell in row.cells: 
      for paragraph in cell.paragraphs: 
       for run in paragraph.runs: 
        font = run.font 
        # ---do font-related things--- 

可能要作出這樣通過提取幾個漂亮的功能,但是這是要點。

相關問題