How to convert MS Word (*.docx) file into PDF using UniOffice?
UniOffice supports conversion of MS Word documents (*.docx) into PDF documents. We have created a detailed example of how you can convert the MS Word document (*.docx) to PDF using UniOffice. You can see the detailed example at our GitHub repository https://github.com/unidoc/unioffice-examples/tree/master/document/doc-to-pdf.
Note: UniOffice/UniSuite doesn't support legacy Office files/extension *.doc, *.ppt, *.xls. These packages only support *docx, *.pptx, *.xlsx
Code Snippet
/*
* This example showcases PDF generation from docx document with UniOffice package.
*/
package main
import (
"fmt"
"log"
"os"
unipdflicense "github.com/unidoc/unipdf/v4/common/license"
"github.com/unidoc/unioffice/v2/common/license"
"github.com/unidoc/unioffice/v2/document"
"github.com/unidoc/unioffice/v2/document/convert"
)
func init() {
// Make sure to load your metered License API key prior to using the library.
// If you need a key, you can sign up and create a free one at https://cloud.unidoc.io
err := unipdflicense.SetMeteredKey(os.Getenv(`UNIDOC_LICENSE_API_KEY`))
if err != nil {
fmt.Printf("ERROR: Failed to set metered key: %v\n", err)
fmt.Printf("Make sure to get a valid key from https://cloud.unidoc.io\n")
fmt.Printf("If you don't have one - Grab one in the Free Tier at https://cloud.unidoc.io\n")
panic(err)
}
// This example requires both for unioffice and unipdf.
err = license.SetMeteredKey(os.Getenv(`UNIDOC_LICENSE_API_KEY`))
if err != nil {
fmt.Printf("ERROR: Failed to set metered key: %v\n", err)
fmt.Printf("Make sure to get a valid key from https://cloud.unidoc.io\n")
fmt.Printf("If you don't have one - Grab one in the Free Tier at https://cloud.unidoc.io\n")
panic(err)
}
}
var filenames = []string{
"chart",
"headers_footers",
"image_square",
"table",
"text_only_portrait",
"text_only_landscape",
"textbox_anchor",
"textbox_inline",
}
func main() {
for _, filename := range filenames {
outputPath := filename + ".pdf"
doc, err := document.Open(filename + ".docx")
if err != nil {
log.Fatalf("error opening document: %s", err)
}
defer doc.Close()
c := convert.ConvertToPdf(doc)
err = c.WriteToFile(outputPath)
if err != nil {
log.Fatalf("error converting document: %s", err)
}
}
}