gotenberg

package module
v1.3.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 28, 2025 License: MIT Imports: 6 Imported by: 0

README ¶

gotenberg-client

Go Reference Go Report Card License

A high-performance Go client for the Gotenberg HTTP API with fluent interface. Built using only Go standard library (via http-client dependency).

Quick Start

package main

import (
    "context"
    "log"
    "net/http"
    "strings"
    
    "github.com/nativebpm/gotenberg-client"
)

func main() {
    client, err := gotenberg.NewClient(&http.Client{}, "http://localhost:3000")
    if err != nil {
        log.Fatal(err)
    }
    
    html := strings.NewReader("<html><body><h1>Hello World!</h1></body></html>")
    
    resp, err := client.
        ConvertHTML(context.Background(), html).
        PaperSizeA4().
        Send()
        
    if err != nil {
        log.Fatal(err)
    }
    defer resp.Body.Close()
}

Installation

go get github.com/nativebpm/gotenberg-client

Dependencies

This client has minimal dependencies and relies only on:

No third-party dependencies are required, ensuring minimal bloat and maximum compatibility.

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

Documentation ¶

Index ¶

Constants ¶

View Source
const (
	ConvertHTML = "/forms/chromium/convert/html"
	ConvertURL  = "/forms/chromium/convert/url"
)
View Source
const (
	FieldSinglePage              = "singlePage"
	FieldPaperWidth              = "paperWidth"
	FieldPaperHeight             = "paperHeight"
	FieldMarginTop               = "marginTop"
	FieldMarginBottom            = "marginBottom"
	FieldMarginLeft              = "marginLeft"
	FieldMarginRight             = "marginRight"
	FieldPreferCSSPageSize       = "preferCssPageSize"
	FieldGenerateDocumentOutline = "generateDocumentOutline"
	FieldGenerateTaggedPDF       = "generateTaggedPdf"
	FieldPrintBackground         = "printBackground"
	FieldOmitBackground          = "omitBackground"
	FieldLandscape               = "landscape"
	FieldScale                   = "scale"
	FieldNativePageRanges        = "nativePageRanges"
)
View Source
const (
	HeaderWebhookURL              = "Gotenberg-Webhook-Url"
	HeaderWebhookErrorURL         = "Gotenberg-Webhook-Error-Url"
	HeaderWebhookMethod           = "Gotenberg-Webhook-Method"
	HeaderWebhookErrorMethod      = "Gotenberg-Webhook-Error-Method"
	HeaderWebhookExtraHTTPHeaders = "Gotenberg-Webhook-Extra-Http-Headers"
	HeaderOutputFilename          = "Gotenberg-Output-Filename"
	HeaderGotenbergTrace          = "Gotenberg-Trace"
)
View Source
const (
	FieldURL       = "url"
	FieldFiles     = "files"
	FileIndexHTML  = "index.html"
	FileFooterHTML = "footer.html"
	FileHeaderHTML = "header.html"
	FileStylesCSS  = "styles.css"
)

Variables ¶

View Source
var (
	PaperSizeLetter  = [2]float64{8.5, 11}
	PaperSizeLegal   = [2]float64{8.5, 14}
	PaperSizeTabloid = [2]float64{11, 17}
	PaperSizeLedger  = [2]float64{17, 11}
	PaperSizeA0      = [2]float64{33.1, 46.8}
	PaperSizeA1      = [2]float64{23.4, 33.1}
	PaperSizeA2      = [2]float64{16.54, 23.4}
	PaperSizeA3      = [2]float64{11.7, 16.54}
	PaperSizeA4      = [2]float64{8.27, 11.7}
	PaperSizeA5      = [2]float64{5.83, 8.27}
	PaperSizeA6      = [2]float64{4.13, 5.83}
)

Functions ¶

This section is empty.

Types ¶

type Client ¶

type Client struct {
	*httpclient.Client
}

func NewClient ¶

func NewClient(httpClient *http.Client, baseURL string) (*Client, error)

func (*Client) ConvertHTML ¶ added in v1.0.1

func (c *Client) ConvertHTML(ctx context.Context, html io.Reader) *Request

func (*Client) ConvertURL ¶ added in v1.0.1

func (c *Client) ConvertURL(ctx context.Context, url string) *Request

type Request ¶ added in v1.1.1

type Request struct {
	*httpclient.Request
	// contains filtered or unexported fields
}

func (*Request) Bool ¶ added in v1.1.1

func (r *Request) Bool(fieldName string, value bool) *Request

func (*Request) File ¶ added in v1.1.1

func (r *Request) File(fieldName, filename string, content io.Reader) *Request

func (*Request) Float ¶ added in v1.1.1

func (r *Request) Float(fieldName string, value float64) *Request

func (*Request) FormField ¶ added in v1.1.1

func (r *Request) FormField(fieldName, value string) *Request

func (*Request) Header ¶ added in v1.1.1

func (r *Request) Header(key, value string) *Request

func (*Request) Margins ¶ added in v1.1.1

func (r *Request) Margins(top, right, bottom, left float64) *Request

func (*Request) OutputFilename ¶ added in v1.3.1

func (r *Request) OutputFilename(filename string) *Request

func (*Request) PaperSize ¶ added in v1.1.1

func (r *Request) PaperSize(width, height float64) *Request

func (*Request) PaperSizeA4 ¶ added in v1.1.1

func (r *Request) PaperSizeA4() *Request

func (*Request) PaperSizeLetter ¶ added in v1.1.1

func (r *Request) PaperSizeLetter() *Request

func (*Request) Send ¶ added in v1.1.1

func (r *Request) Send() (*Response, error)

func (*Request) WebhookErrorURLMethodPost ¶ added in v1.1.1

func (r *Request) WebhookErrorURLMethodPost(url string) *Request

func (*Request) WebhookExtraHeaders ¶ added in v1.1.1

func (r *Request) WebhookExtraHeaders(headers map[string]string) *Request

func (*Request) WebhookURLMethodPost ¶ added in v1.1.1

func (r *Request) WebhookURLMethodPost(url string) *Request

type Response ¶ added in v1.3.1

type Response struct {
	*http.Response
	GotenbergTrace string
}

Directories ¶

Path Synopsis
example
cmd/webhook command

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL