Popularity
1.8
-
Activity
5.0
-
18
1
6

Description

Implements wkhtmltopdf Go bindings. It can be used to convert HTML documents to PDF files. The package does not use the wkhtmltopdf binary. Instead, it uses the wkhtmltox library directly.

Full documentation can be found at: https://godoc.org/github.com/adrg/go-wkhtmltopdf

Programming language: Go
Tags: HTML     Bindings     Native     Go     Package     Golang     PDF     Library     Wkhtmltopdf     Convert     Wkhtmltox    

go-wkhtmltopdf alternatives and similar packages

Based on the "PDF" category

Do you think we are missing an alternative of go-wkhtmltopdf or a related project?

Add another 'PDF' Package

README

go-wkhtmltopdf

GoDoc License: MIT Go Report Card

Implements wkhtmltopdf Go bindings. It can be used to convert HTML documents to PDF files. The package does not use the wkhtmltopdf binary. Instead, it uses the wkhtmltox library directly.

Full documentation can be found at: https://godoc.org/github.com/adrg/go-wkhtmltopdf

Requirements

In order to use the package, wkhtmltox must be installed. Installation packages for multiple operating systems can be found at https://builds.wkhtmltopdf.org.

On Debian based distributions, use dpkg to install the downloaded installation package.

sudo dpkg -i wkhtmltox.deb
sudo ldconfig

Installation

go get github.com/adrg/go-wkhtmltopdf

Usage

package main

import (
    "log"
    "os"

    pdf "github.com/adrg/go-wkhtmltopdf"
)

func main() {
    pdf.Init()
    defer pdf.Destroy()

    // Create object from file.
    object, err := pdf.NewObject("sample1.html")
    if err != nil {
        log.Fatal(err)
    }
    object.Header.ContentCenter = "[title]"
    object.Header.DisplaySeparator = true

    // Create object from URL.
    object2, err := pdf.NewObject("https://google.com")
    if err != nil {
        log.Fatal(err)
    }
    object.Footer.ContentLeft = "[date]"
    object.Footer.ContentCenter = "Sample footer information"
    object.Footer.ContentRight = "[page]"
    object.Footer.DisplaySeparator = true

    // Create object from reader.
    inFile, err := os.Open("sample2.html")
    if err != nil {
        log.Fatal(err)
    }
    defer inFile.Close()

    object3, err := pdf.NewObjectFromReader(inFile)
    if err != nil {
        log.Fatal(err)
    }
    object3.Zoom = 1.5
    object3.TOC.Title = "Table of Contents"

    // Create converter.
    converter, err := pdf.NewConverter()
    if err != nil {
        log.Fatal(err)
    }
    defer converter.Destroy()

    // Add created objects to the converter.
    converter.Add(object)
    converter.Add(object2)
    converter.Add(object3)

    // Set converter options.
    converter.Title = "Sample document"
    converter.PaperSize = pdf.A4
    converter.Orientation = pdf.Landscape
    converter.MarginTop = "1cm"
    converter.MarginBottom = "1cm"
    converter.MarginLeft = "10mm"
    converter.MarginRight = "10mm"

    // Convert objects and save the output PDF document.
    outFile, err := os.Create("out.pdf")
    if err != nil {
        log.Fatal(err)
    }
    defer outFile.Close()

    if err := converter.Run(outFile); err != nil {
        log.Fatal(err)
    }
}

For more information see the wkhtmltopdf documentation and the wkhtmltox documentation.

Contributing

Contributions in the form of pull requests, issues or just general feedback, are always welcome. See CONTRIBUTING.MD.

License

Copyright (c) 2016 Adrian-George Bostan.

This project is licensed under the MIT license. See LICENSE for more details.


*Note that all licence references and agreements mentioned in the go-wkhtmltopdf README section above are relevant to that project's source code only.