Skip to main content

Paragraphs

This section provides an overview of how to create and manipulate paragraphs using the godocx library. We'll cover the basics of adding a paragraphs to a document, styling it.

Example Code

Here is an example demonstrating how to add and customize paragraphs in a DOCX document:

package main

import (
"log"

"github.com/gomutex/godocx"
"github.com/gomutex/godocx/wml/stypes"
)

func main() {
document, err := godocx.NewDocument()
if err != nil {
log.Fatal(err)
}

// Simple addition of paragraph text
p := document.AddParagraph("Hello, World.")
r := p.AddText(" Italic")
r.Italic(true)

// Add empty paragraph element then later add text with run
p1 := document.AddEmptyParagraph()
// Using Run
r1 := p1.AddText("Hello, Parallel World")
r1.Color("bc00d6")
r1.Bold(true)

document.AddEmptyParagraph().AddText("Strike").Strike(true)
document.AddEmptyParagraph().AddText("Underline").Underline(stypes.UnderlineSingle)
document.AddEmptyParagraph().AddText("Highlight").Highlight(stypes.ColorIndexBlue)
document.AddEmptyParagraph().AddText("Shading").Shading(stypes.ShdSolid, "auto", "FF00A0")

jp1 := document.AddParagraph("Center Justified")
jp1.Justification("center")

err = document.SaveTo("paragraph.docx")
if err != nil {
log.Fatal(err)
}
}

Explanation

1. Creating a New Document

document, err := godocx.NewDocument()
if err != nil {
log.Fatal(err)
}
  • godocx.NewDocument(): Initializes a new DOCX document.
  • Error Handling: Check for errors to ensure the document was created successfully.

2. Adding a Paragraph with Text

p := document.AddParagraph("Hello, World.")
r := p.AddText(" Italic")
r.Italic(true)
  • AddParagraph(text string): Adds a new paragraph with the specified text. AddText(text string): Adds text to the existing paragraph and returns a Run object.
  • Italic(true): Applies italic formatting to the text. In this example the text " Italic" gets formatted in italic style.

3. Adding an Empty Paragraph and Later Adding Text

p1 := document.AddEmptyParagraph()
r1 := p1.AddText("Hello, Parallel World")
r1.Color("bc00d6")
r1.Bold(true)
  • AddEmptyParagraph(): Adds a new empty paragraph to the document.
  • AddText(text string): Adds text to the existing paragraph and returns a Run object.
  • Styles : The word "Hello, Parallel World" gets the following style:
  • Color(color string): Sets the text color.
  • Bold(true): Applies bold formatting to the text.

4. Adding Paragraphs with Various Styles

document.AddEmptyParagraph().AddText("Strike").Strike(true)
document.AddEmptyParagraph().AddText("Underline").Underline(stypes.UnderlineSingle)
document.AddEmptyParagraph().AddText("Highlight").Highlight(stypes.ColorIndexBlue)
document.AddEmptyParagraph().AddText("Shading").Shading(stypes.ShdSolid, "auto", "FF00A0")
  • Strike(true): Applies strikethrough text formatting.
  • Underline(underlineType stypes.Underline): Applies underline formatting.
  • Highlight(color stypes.ColorIndex): Adds highlight color to the text.
  • Shading(fill string, val string, color string): Adds shading to the text.

5. Justifying Paragraph Text

jp1 := document.AddParagraph("Center Justified")
jp1.Justification("center")
  • Justification(alignment string): Sets the text alignment for the paragraph (e.g., "center").

6. Saving the Document

err = document.SaveTo("paragraph.docx")
if err != nil {
log.Fatal(err)
}
  • SaveTo(filename string): Saves the document to a specified file path.
  • Error Handling: Ensure that the document was saved successfully.

Key Methods for Paragraphs

Here are some of the essential methods for working with paragraphs in godocx:

  • AddParagraph(text string): Creates a new paragraph with the provided text.
  • AddEmptyParagraph(): Adds a new, empty paragraph.
  • AddText(text string): Adds a text run to the paragraph.
  • Italic(enabled bool): Sets italic formatting for the text.
  • Bold(enabled bool): Sets bold formatting for the text.
  • Underline(underlineType stypes.Underline): Sets underline style for the text.
  • Strike(enabled bool): Applies strikethrough formatting.
  • Highlight(color stypes.ColorIndex): Adds a highlight color to the text.
  • Shading(fill string, val string, color string): Applies shading to the text.
  • Justification(alignment string): Sets the text alignment for the paragraph.

Further Reading

For more information on the full range of paragraph-related functions available in the godocx library, please refer to the official documentation on pkg.go.dev.