Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Adding a header to docx file with python

I have several hundred word documents for which I need to add a specific header (as in a typical MS Word header/ footer). It is not that the header needs to be modified, these documents just don't contain one. Is there any way to do this with the Python-docx module? I recently discovered it and it seems promising.

like image 611
Ishu108 Avatar asked Nov 18 '25 23:11

Ishu108


1 Answers

And if the user doesn't have docx package, it can be done through win32 too, using this.

..//

import win32com.client

if win32com.client.gencache.is_readonly == True:
    win32com.client.gencache.is_readonly = False
    win32com.client.gencache.Rebuild()

from win32com.client.gencache import EnsureDispatch
from win32com.client import constants

word = win32com.client.gencache.EnsureDispatch("Word.Application")
word.Visible = False

    #tell word to open the document
    word.Documents.Open (IP_Directory_Dest + "\\" + name)

    #open it internally
    doc = word.Documents(1)

    # for changing the header information of the Document
    word.Visible = True
    word.ActiveDocument.Sections(1).Headers(win32com.client.constants.wdHeaderFooterPrimary).Range.Text='STUFF U WANT AS UR DOCUMENT HEADER'
    word.ActiveDocument.Save()

...///

like image 109
Varun Avatar answered Nov 21 '25 14:11

Varun



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!