UniDoc UniHTML is a UniPDF library plugin module with capability of extracting and converting HTML files and inject into PDF document.
For the golang documentation check: GoDoc.
It requires a UniHTML Server component to work. Visit https://unidoc.io.
- Create a PDF file from simple HTML file.
- Create PDF file based on the directory that contains HTML along with CSS, JavaScript and Images.
- Create PDF file based on the external web link.
- Define output page dimensions in metric or imperial systems.
- Define output page size based on the ISO Paper Sizes for
A
,B
series and aLetter
. - Define output page orientation.
- Define custom margin sizes for the output document.
- Injection of HTML defined document into existing PDF document.
- CLI that allows to execute HTML -> PDF conversion.
UniHTML is a plugin for the UniPDF Golang library.
It requires valid UniPDF license with the UniHTML plugin. Visit https://unidoc.io to get more information.
This plugin works in a pair with the UniHTML server. It is distributed using Docker images and could be downloaded directly from the unidoccloud/unihtml
DockerHub repository
- Get UniHTML-Server Docker image:
docker pull unidoccloud/unihtml:latest
- Start UniHTML server with some output port defined:
docker run -p 8080:8080 -e UNIHTML_LICENSE_PATH=path/to/license -e UNIHTML_CUSTOMER_NAME=customer_name unidoccloud/unihtml
- Define environment variable:
UNIPDF_LICENSE_PATH
with the path to the UniDoc license. - Define environment variable:
UNIPDF_CUSTOMER_NAME
with your customer name matching your license. - Get the latest version of the
github.com/unidoc/unipdf/v3
module:go get github.com/unidoc/unipdf/v3
UniHTML Server accepts both the offline and metered UniDoc licenses. A license with a UniHTML module is required to run both the server and client.
A regular license could be set on the server by setting one of two possible environment variables:
UNIHTML_LICENSE_PATH
- the value should be the path to the UniDoc license file with the UniHTML module.UNIHTML_LICENSE
- full content of valid UniDoc license with the UniHTML module.
This license kind requires also an environment variable UNIHTML_CUSTOMER_NAME
which defines the customer name provided with the UniDoc license.
UniHTML Server accepts also a UniDoc metered license. This could be set by providing you API Key in the environment variable:
UNIDOC_METERED_API_KEY
- the value of this variable should be an API Key matched to your license.
Following example connects to the UniHTML server, reads the content of the input file and converts it using github.com/unidoc/unipdf/v3/creator
package.
package main
import (
"fmt"
"os"
"github.com/unidoc/unihtml"
"github.com/unidoc/unipdf/v3/creator"
)
func main() {
// UniHTML requires two arguments:
// - Connection path to the unihtml-server i.e.: https://localhost:8080
// - Input path for the file / directory to convert
if len(os.Args) != 3 {
fmt.Println("Err: provided invalid arguments. No UniHTML server path provided")
os.Exit(1)
}
// Establish connection with the UniHTML Server.
if err := unihtml.Connect(os.Args[1]); err != nil {
fmt.Printf("Err: Connect failed: %v\n", err)
os.Exit(1)
}
// Get new PDF Creator.
c := creator.New()
// Read the content of the simple.html file and load it to the conversion.
doc, err := unihtml.NewDocument(os.Args[2])
if err != nil {
fmt.Printf("Err: NewDocument failed: %v\n", err)
os.Exit(1)
}
// Draw the html document file in the context of the creator.
if err = c.Draw(doc); err != nil {
fmt.Printf("Err: Draw failed: %v\n", err)
os.Exit(1)
}
// Write the result file to PDF.
if err = c.WriteToFile("document.pdf"); err != nil {
fmt.Printf("Err: %v\n", err)
os.Exit(1)
}
}
All contributors must sign a contributor license agreement before their code will be reviewed and merged.
Please email us at [email protected] for any queries.
If you have any specific tasks that need to be done, we offer consulting in certain cases. Please contact us with a brief summary of what you need and we will get back to you with a quote, if appropriate.
This software package (unihtml) is a commercial product and requires a license code to operate.
The use of this software package is governed by the end-user license agreement (EULA) available at: https://unidoc.io/eula/
To obtain a Trial license code to evaluate the software, please visit https://unidoc.io/