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( '''Lazyroar is a Computer Science portal for Lazyroar. 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( '''Lazyroar is a Computer Science portal for Lazyroar.''' ) # 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( 'Lazyroar is a Computer Science portal for Lazyroar.' ).font.highlight_color = WD_COLOR_INDEX.AUTO # Adding Black Styled Highlighted paragraph doc.add_heading( 'BLACK Style:' , 3 ) doc.add_paragraph().add_run( 'Lazyroar is a Computer Science portal for Lazyroar.' ).font.highlight_color = WD_COLOR_INDEX.BLACK # Adding Blue Styled Highlighted paragraph doc.add_heading( 'BLUE Style:' , 3 ) doc.add_paragraph().add_run( 'Lazyroar is a Computer Science portal for Lazyroar.' ).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( 'Lazyroar is a Computer Science portal for Lazyroar.' ).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( 'Lazyroar is a Computer Science portal for Lazyroar.' ).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( 'Lazyroar is a Computer Science portal for Lazyroar.' ).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( 'Lazyroar is a Computer Science portal for Lazyroar.' ).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( 'Lazyroar is a Computer Science portal for Lazyroar.' ).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( 'Lazyroar is a Computer Science portal for Lazyroar.' ).font.highlight_color = WD_COLOR_INDEX.GRAY_50 # Adding GREEN Styled Highlighted paragraph doc.add_heading( 'GREEN Style:' , 3 ) doc.add_paragraph().add_run( 'Lazyroar is a Computer Science portal for Lazyroar.' ).font.highlight_color = WD_COLOR_INDEX.GREEN # Adding Pink Styled Highlighted paragraph doc.add_heading( 'PINK Style:' , 3 ) doc.add_paragraph().add_run( 'Lazyroar is a Computer Science portal for Lazyroar.' ).font.highlight_color = WD_COLOR_INDEX.PINK # Adding Red Styled Highlighted paragraph doc.add_heading( 'RED Style:' , 3 ) doc.add_paragraph().add_run( 'Lazyroar is a Computer Science portal for Lazyroar.' ).font.highlight_color = WD_COLOR_INDEX.RED # Adding Teal Styled Highlighted paragraph doc.add_heading( 'TEAL Style:' , 3 ) doc.add_paragraph().add_run( 'Lazyroar is a Computer Science portal for Lazyroar.' ).font.highlight_color = WD_COLOR_INDEX.TEAL # Adding Turquoise Styled Highlighted paragraph doc.add_heading( 'TURQUOISE Style:' , 3 ) doc.add_paragraph().add_run( 'Lazyroar is a Computer Science portal for Lazyroar.' ).font.highlight_color = WD_COLOR_INDEX.TURQUOISE # Adding Violet Styled Highlighted paragraph doc.add_heading( 'VIOLET Style:' , 3 ) doc.add_paragraph().add_run( 'Lazyroar is a Computer Science portal for Lazyroar.' ).font.highlight_color = WD_COLOR_INDEX.VIOLET # Adding White Styled Highlighted paragraph doc.add_heading( 'WHITE Style:' , 3 ) doc.add_paragraph().add_run( 'Lazyroar is a Computer Science portal for Lazyroar.' ).font.highlight_color = WD_COLOR_INDEX.WHITE # Adding Yellow Styled Highlighted paragraph doc.add_heading( 'YELLOW Style:' , 3 ) doc.add_paragraph().add_run( 'Lazyroar is a Computer Science portal for Lazyroar.' ).font.highlight_color = WD_COLOR_INDEX.YELLOW # Now save the document to a location doc.save( 'gfg.docx' ) |
Output: