Working with Highlighted Text 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 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:
Please Login to comment...