go-fitz: github.com/gen2brain/go-fitz Index | Examples | Files

package fitz

import "github.com/gen2brain/go-fitz"

Package fitz provides wrapper for the [MuPDF](http://mupdf.com/) fitz library that can extract pages from PDF, EPUB and XPS documents as images or text.

Index

Examples

Package Files

fitz.go fitz_cgo.go

Variables

var (
    ErrNoSuchFile    = errors.New("fitz: no such file")
    ErrCreateContext = errors.New("fitz: cannot create context")
    ErrOpenDocument  = errors.New("fitz: cannot open document")
    ErrOpenMemory    = errors.New("fitz: cannot open memory")
    ErrPageMissing   = errors.New("fitz: page missing")
    ErrCreatePixmap  = errors.New("fitz: cannot create pixmap")
    ErrPixmapSamples = errors.New("fitz: cannot get pixmap samples")
    ErrNeedsPassword = errors.New("fitz: document needs password")
)

Errors.

type Document Uses

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

Document represents fitz document.

func New Uses

func New(filename string) (f *Document, err error)

New returns new fitz document.

Code:

doc, err := New("test.pdf")
if err != nil {
    panic(err)
}

defer doc.Close()

tmpDir, err := ioutil.TempDir(os.TempDir(), "fitz")
if err != nil {
    panic(err)
}

// Extract pages as images
for n := 0; n < doc.NumPage(); n++ {
    img, err := doc.Image(n)
    if err != nil {
        panic(err)
    }

    f, err := os.Create(filepath.Join(tmpDir, fmt.Sprintf("test%03d.jpg", n)))
    if err != nil {
        panic(err)
    }

    err = jpeg.Encode(f, img, &jpeg.Options{Quality: jpeg.DefaultQuality})
    if err != nil {
        panic(err)
    }

    f.Close()
}

// Extract pages as text
for n := 0; n < doc.NumPage(); n++ {
    text, err := doc.Text(n)
    if err != nil {
        panic(err)
    }

    f, err := os.Create(filepath.Join(tmpDir, fmt.Sprintf("test%03d.txt", n)))
    if err != nil {
        panic(err)
    }

    _, err = f.WriteString(text)
    if err != nil {
        panic(err)
    }

    f.Close()
}

// Extract pages as html
for n := 0; n < doc.NumPage(); n++ {
    html, err := doc.HTML(n, true)
    if err != nil {
        panic(err)
    }

    f, err := os.Create(filepath.Join(tmpDir, fmt.Sprintf("test%03d.html", n)))
    if err != nil {
        panic(err)
    }

    _, err = f.WriteString(html)
    if err != nil {
        panic(err)
    }

    f.Close()
}

// Extract pages as svg
for n := 0; n < doc.NumPage(); n++ {
    svg, err := doc.SVG(n)
    if err != nil {
        panic(err)
    }

    f, err := os.Create(filepath.Join(tmpDir, fmt.Sprintf("test%03d.svg", n)))
    if err != nil {
        panic(err)
    }

    _, err = f.WriteString(svg)
    if err != nil {
        panic(err)
    }

    f.Close()
}

func NewFromMemory Uses

func NewFromMemory(b []byte) (f *Document, err error)

NewFromMemory returns new fitz document from byte slice.

func NewFromReader Uses

func NewFromReader(r io.Reader) (f *Document, err error)

NewFromReader returns new fitz document from io.Reader.

func (*Document) Close Uses

func (f *Document) Close() error

Close closes the underlying fitz document.

func (*Document) HTML Uses

func (f *Document) HTML(pageNumber int, header bool) (string, error)

HTML returns html for given page number.

func (*Document) Image Uses

func (f *Document) Image(pageNumber int) (image.Image, error)

Image returns image for given page number.

func (*Document) NumPage Uses

func (f *Document) NumPage() int

NumPage returns total number of pages in document.

func (*Document) SVG Uses

func (f *Document) SVG(pageNumber int) (string, error)

SVG returns svg document for given page number.

func (*Document) Text Uses

func (f *Document) Text(pageNumber int) (string, error)

Text returns text for given page number.

Package fitz imports 8 packages (graph) and is imported by 2 packages. Updated 2018-04-16. Refresh now. Tools for package owners.