Working with Highlighted Text in Python .docx Module
Last Updated :
03 Jan, 2021
Prerequisites: docx
Word documents contain formatted text wrapped within three object levels. The Lowest level- run objects, middle level- paragraph objects and highest level- document object. So, we cannot work with these documents using normal text editors. But, we can manipulate these word documents in python using the python-docx module. Pip command to install this module is:
pip install python-docx
Python docx module allows users to manipulate docs by either manipulating the existing one or creating a new empty document and manipulating it. It is a powerful tool as it helps you to manipulate the document to a very large extend. You can also add highlighted text in your Word document.
To add the highlighted text you have to first create a paragraph object then you have to use add_run() method to add content. You can directly use add_paragraph() method to add a paragraph but if you want to add the highlighted text you have to use add_run() as all the block-level formatting is done by using add_paragraph() method while all the character-level formatting is done by using add_run().
Adding Highlighted Text
Text is highlighted by assigning a member of WD_COLOR_INDEX to Font.highlight_color. To use WD_COLOR_INDEX we have first import it using the following import statement.
from docx.enum.text import WD_COLOR_INDEX
Syntax: paragraph.add_run().font.highlight_color = Colour_Name
Parameter: Colour_Name: It is the name of the colour assign to highlight the text. It is the member of the WD_COLOR_INDEX.
Note: If we don't assign the colour then default colour is NONE.
Example 1: Highlighting the complete paragraph using the python-docx module.
Python3
# Import docx NOT python-docx
import docx
from docx.enum.text import WD_COLOR_INDEX
# Create an instance of a word document
doc = docx.Document()
# Add a Title to the document
doc.add_heading('GeeksForGeeks', 0)
# Creating paragraph with some content and Highlighting it.
highlight_para = doc.add_paragraph(
).add_run(
'''GeeksforGeeks is a Computer Science portal for geeks. It contains well written, well thought and well-explained computer science and programming articles, quizzes etc.'''
).font.highlight_color = WD_COLOR_INDEX.YELLOW
# Now save the document to a location
doc.save('gfg.docx')
Output:

Example 2: Highlighting the specific word or phrase in a paragraph using the python-docx module.
Python3
# Import docx NOT python-docx
import docx
from docx.enum.text import WD_COLOR_INDEX
# Create an instance of a word document
doc = docx.Document()
# Add a Title to the document
doc.add_heading('GeeksForGeeks', 0)
# Creating paragraph with some content
para = doc.add_paragraph('''GeeksforGeeks is a Computer Science portal for geeks.''')
# Adding more content to paragraph and highlighting them
para.add_run(''' It contains well written, well thought and well-explained '''
).font.highlight_color = WD_COLOR_INDEX.YELLOW
# Adding more content to paragraph
para.add_run('''computer science and programming articles, quizzes etc.''')
# Now save the document to a location
doc.save('gfg.docx')
Output:

Styles
There are various colour option to highlight the text. You can choose any colour which is a member of WD_COLOR_INDEX. The list of colours are as follows:
SR. No.
| Colour Name In WD_COLOR_INDEX
| Colour Description
|
---|
1.
| AUTO
| Default or No Colour
|
2.
| BLACK
| Black Colour
|
3.
| BLUE
| Blue Colour
|
4.
| BRIGHT_GREEN
| Green Colour
|
5.
| DARK_BLUE
| Dark Blue Colour
|
6.
| DARK_RED
| Dark Red Colour
|
7.
| DARK_YELLOW
| Dark Yellow Colour
|
8.
| GRAY_25
| Light Gray Colour
|
9.
| GRAY_50
| Dark Gray Colour
|
10.
| GREEN
| Dark Green Colour
|
11.
| PINK
| Magenta Colour
|
12.
| RED
| Red Colour
|
13.
| TEAL
| Dark Cyan Colour
|
14.
| TURQUOISE
| Cyan Colour
|
15.
| VIOLET
| Dark Magenta Colour
|
16.
| WHITE
| White Colour
|
17.
| YELLOW
| Yellow Colour
|
Example 3: Adding styled highlighted text in the Word document.
Python3
# Import docx NOT python-docx
import docx
from docx.enum.text import WD_COLOR_INDEX
# Create an instance of a word document
doc = docx.Document()
# Add a Title to the document
doc.add_heading('GeeksForGeeks', 0)
# Adding Auto Styled Highlighted paragraph
doc.add_heading('AUTO Style:', 3)
doc.add_paragraph().add_run('GeeksforGeeks is a Computer Science portal for geeks.'
).font.highlight_color = WD_COLOR_INDEX.AUTO
# Adding Black Styled Highlighted paragraph
doc.add_heading('BLACK Style:', 3)
doc.add_paragraph().add_run('GeeksforGeeks is a Computer Science portal for geeks.'
).font.highlight_color = WD_COLOR_INDEX.BLACK
# Adding Blue Styled Highlighted paragraph
doc.add_heading('BLUE Style:', 3)
doc.add_paragraph().add_run('GeeksforGeeks is a Computer Science portal for geeks.'
).font.highlight_color = WD_COLOR_INDEX.BLUE
# Adding Bright Green Styled Highlighted paragraph
doc.add_heading('BRIGHT_GREEN Style:', 3)
doc.add_paragraph().add_run('GeeksforGeeks is a Computer Science portal for geeks.'
).font.highlight_color = WD_COLOR_INDEX.BRIGHT_GREEN
# Adding Dark Blue Styled Highlighted paragraph
doc.add_heading('DARK_BLUE Style:', 3)
doc.add_paragraph().add_run('GeeksforGeeks is a Computer Science portal for geeks.'
).font.highlight_color = WD_COLOR_INDEX.DARK_BLUE
# Adding Dark Red Styled Highlighted paragraph
doc.add_heading('DARK_RED Style:', 3)
doc.add_paragraph().add_run('GeeksforGeeks is a Computer Science portal for geeks.'
).font.highlight_color = WD_COLOR_INDEX.DARK_RED
# Adding Dark Yellow Styled Highlighted paragraph
doc.add_heading('DARK_YELLOW Style:', 3)
doc.add_paragraph().add_run('GeeksforGeeks is a Computer Science portal for geeks.'
).font.highlight_color = WD_COLOR_INDEX.DARK_YELLOW
# Adding GRAY25 Styled Highlighted paragraph
doc.add_heading('GRAY_25 Style:', 3)
doc.add_paragraph().add_run('GeeksforGeeks is a Computer Science portal for geeks.'
).font.highlight_color = WD_COLOR_INDEX.GRAY_25
# Adding GRAY50 Styled Highlighted paragraph
doc.add_heading('GRAY_50 Style:', 3)
doc.add_paragraph().add_run('GeeksforGeeks is a Computer Science portal for geeks.'
).font.highlight_color = WD_COLOR_INDEX.GRAY_50
# Adding GREEN Styled Highlighted paragraph
doc.add_heading('GREEN Style:', 3)
doc.add_paragraph().add_run('GeeksforGeeks is a Computer Science portal for geeks.'
).font.highlight_color = WD_COLOR_INDEX.GREEN
# Adding Pink Styled Highlighted paragraph
doc.add_heading('PINK Style:', 3)
doc.add_paragraph().add_run('GeeksforGeeks is a Computer Science portal for geeks.'
).font.highlight_color = WD_COLOR_INDEX.PINK
# Adding Red Styled Highlighted paragraph
doc.add_heading('RED Style:', 3)
doc.add_paragraph().add_run('GeeksforGeeks is a Computer Science portal for geeks.'
).font.highlight_color = WD_COLOR_INDEX.RED
# Adding Teal Styled Highlighted paragraph
doc.add_heading('TEAL Style:', 3)
doc.add_paragraph().add_run('GeeksforGeeks is a Computer Science portal for geeks.'
).font.highlight_color = WD_COLOR_INDEX.TEAL
# Adding Turquoise Styled Highlighted paragraph
doc.add_heading('TURQUOISE Style:', 3)
doc.add_paragraph().add_run('GeeksforGeeks is a Computer Science portal for geeks.'
).font.highlight_color = WD_COLOR_INDEX.TURQUOISE
# Adding Violet Styled Highlighted paragraph
doc.add_heading('VIOLET Style:', 3)
doc.add_paragraph().add_run('GeeksforGeeks is a Computer Science portal for geeks.'
).font.highlight_color = WD_COLOR_INDEX.VIOLET
# Adding White Styled Highlighted paragraph
doc.add_heading('WHITE Style:', 3)
doc.add_paragraph().add_run('GeeksforGeeks is a Computer Science portal for geeks.'
).font.highlight_color = WD_COLOR_INDEX.WHITE
# Adding Yellow Styled Highlighted paragraph
doc.add_heading('YELLOW Style:', 3)
doc.add_paragraph().add_run('GeeksforGeeks is a Computer Science portal for geeks.'
).font.highlight_color = WD_COLOR_INDEX.YELLOW
# Now save the document to a location
doc.save('gfg.docx')
Output:

Similar Reads
Working with Lists - Python .docx Module
Prerequisite: Working with .docx module Word documents contain formatted text wrapped within three object levels. The Lowest level- run objects, middle level- paragraph objects, and highest level- document object. So, we cannot work with these documents using normal text editors. But, we can manipul
4 min read
Working with Images - Python .docx Module
Prerequisites: docx Word documents contain formatted text wrapped within three object levels. Lowest level- run objects, middle level- paragraph objects and highest level- document object. So, we cannot work with these documents using normal text editors. But, we can manipulate these word documents
2 min read
Working with Titles and Heading - Python docx Module
Prerequisites: docx Word documents contain formatted text wrapped within three object levels. The Lowest level- run objects, middle level- paragraph objects and highest level- document object. So, we cannot work with these documents using normal text editors. But, we can manipulate these word docume
2 min read
Working with Tables - Python .docx Module
Prerequisites: docx Word documents contain formatted text wrapped within three object levels. Lowest level- run objects, middle level- paragraph objects and highest level- document object. So, we cannot work with these documents using normal text editors. But, we can manipulate these word documents
3 min read
Working with Headers And Footers in Python .docx Module
Prerequisite: Working with .docx module Word documents contain formatted text wrapped within three object levels. The Lowest level-run objects, middle level-paragraph objects, and highest level-document objects. So, we cannot work with these documents using normal text editors. But, we can manipulat
6 min read
Working with Paragraphs in Python .docx Module
Prerequisites: docx Word documents contain formatted text wrapped within three object levels. The Lowest level- run objects, middle level- paragraph objects and highest level- document object. So, we cannot work with these documents using normal text editors. But, we can manipulate these word docume
4 min read
Working with Page Break - Python .docx Module
Prerequisites: docx Word documents contain formatted text wrapped within three object levels. Lowest level- run objects, middle level- paragraph objects and highest level- document object. So, we cannot work with these documents using normal text editors. But, we can manipulate these word documents
2 min read
How to add text on an image using pillow in Python ?
Prerequisites: PIL In this article we'll see how we can add text on an image using the pillow library in Python. Python Imaging Library (PIL) is the de facto image processing package for Python language. It incorporates lightweight image processing tools that aids in editing, creating and saving ima
2 min read
Adding Text on Image using Python - PIL
In Python to open an image, image editing, saving that image in different formats one additional library called Python Imaging Library (PIL). Using this PIL we can do so many operations on images like create a new Image, edit an existing image, rotate an image, etc. For adding text we have to follow
2 min read
Python | wxPython module Introduction
Python provides wxpython module which allows us to create high functional graphical user interface. It is an Open Source module, which means it is free for anyone to use and the source code is available for anyone to look and modify. It is implemented as a set of extension modules that wrap the GUI
3 min read