DEV Community

Cover image for Creating Golang CLI Tools for PDF Generation
UniDoc
UniDoc

Posted on

Creating Golang CLI Tools for PDF Generation

Welcome to this beginner-friendly guide on creating Golang CLI tools for generating PDFs.
Whether you're an experienced developer wanting to diversify your skills or a newcomer eager to make utility tools, this article will guide you seamlessly.

Why Golang for CLI Tools?

Go, often known as Golang, stands out for its simplicity, concurrency support, and unparalleled ease in building scalable applications. Being a compiled language ensures that your tool runs at blistering speeds!

Additionally, Go's extensive library ecosystem is a treasure trove for developers. A notable example is the capability to generate PDFs, our primary focus today.

Getting the Basics Down

Setting Up Your Environment:

  • Install Golang: Visit Golang's official website to download the version appropriate for your OS.
  • Ensure your Go workspace is ready by verifying the installation using the Go version.

Kickstarting a New Project:

  • Initiate a new module by typing go mod init pdf-cli-tool.
  • Generate a main.go file with the command: touch main.go.

Selecting a PDF Library

For this walkthrough, we're pivoting towards the unipdf library. It's an intuitive and efficient library for PDF generation in Go. Install it using:

go get github.com/unidoc/unipdf/v3/creator
Enter fullscreen mode Exit fullscreen mode

Crafting Your First PDF Generation CLI Tool

Initialize the PDF:

Start by importing the requisite packages and setting the PDF groundwork in your main.go.

package main

import (
    "github.com/unidoc/unipdf/v3/creator"
)

func main() {
    c := creator.New()
    // ... subsequent code to follow
}
Enter fullscreen mode Exit fullscreen mode

Embedding Text into the PDF:

Create a new paragraph, set its properties, and add it to the document.

p := creator.NewParagraph("Hello, Golang PDF universe!")
p.SetFont(creator.FontHelveticaBold)
p.SetFontSize(16)
c.Draw(p)
Enter fullscreen mode Exit fullscreen mode

Storing the PDF:

Conclude by saving the document.

file, err := os.Create("hello.pdf")
if err != nil {
    panic(err)
}
err = c.WriteToFile(file)
if err != nil {
    panic(err)
}
Enter fullscreen mode Exit fullscreen mode

Executing Your Tool:

Eager to see the results? Generate a PDF using:

go run main.go
Enter fullscreen mode Exit fullscreen mode

If everything goes as planned, you'll notice a hello.pdf file in your directory, proudly displaying "Hello, Golang PDF universe!"

Broadening the Horizon:

The unipdf library brims with functionalities. From adding vivid images to intricate fonts, your options are limitless. Explore, experiment, and create complex PDF documents.

Conclusion:

With Golang's impressive arsenal, creating utility CLI tools is a rewarding experience. The unipdf library further simplifies the process of generating professional-grade PDF documents.

Delve deep into its documentation to unearth many features and elevate your CLI tool.
Here's to many more coding adventures with Golang. Happy coding!

Top comments (0)