render

package module
v0.0.1-antfly003 Latest Latest
Warning

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

Go to latest
Published: Feb 19, 2026 License: BSD-3-Clause Imports: 23 Imported by: 0

Documentation

Overview

Package render provides pure Go PDF page rendering to images.

This package renders PDF pages to raster images without requiring external dependencies like CGO, Ghostscript, or system libraries. It implements a subset of PDF operators sufficient for rendering most document pages.

Supported features:

  • Path operations (moveto, lineto, curveto, closepath, rectangle)
  • Fill and stroke operations (winding and even-odd rules)
  • Graphics state (transformations, line width, line cap/join, dash patterns)
  • Color spaces (DeviceRGB, DeviceCMYK, DeviceGray)
  • Text rendering (Tf, Tj, TJ, Tm with basic font support)
  • Image XObjects (inline and external images)
  • Clipping paths

Example usage:

renderer, err := render.NewRenderer(pdfBytes)
if err != nil {
    return err
}
defer renderer.Close()

img, err := renderer.RenderPage(1, 150) // page 1 at 150 DPI
if err != nil {
    return err
}

Index

Constants

View Source
const DefaultDPI = 150.0

DefaultDPI is the default resolution for rendering.

Variables

This section is empty.

Functions

This section is empty.

Types

type Renderer

type Renderer struct {
	// contains filtered or unexported fields
}

Renderer renders PDF pages to images.

func NewRenderer

func NewRenderer(pdfData []byte) (*Renderer, error)

NewRenderer creates a new renderer from PDF bytes.

func NewRendererFromReader

func NewRendererFromReader(rs io.ReadSeeker) (*Renderer, error)

NewRendererFromReader creates a new renderer from an io.ReadSeeker.

func (*Renderer) Close

func (r *Renderer) Close() error

Close releases resources associated with the renderer.

func (*Renderer) NumPages

func (r *Renderer) NumPages() int

NumPages returns the number of pages in the PDF.

func (*Renderer) RenderPage

func (r *Renderer) RenderPage(pageNum int, dpi float64) (image.Image, error)

RenderPage renders a page to an image at the specified DPI. pageNum is 1-indexed.

func (*Renderer) RenderPageToPNG

func (r *Renderer) RenderPageToPNG(pageNum int, dpi float64) ([]byte, error)

RenderPageToPNG renders a page to PNG bytes.

Jump to

Keyboard shortcuts

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