gen2brain / go-fitz

Golang wrapper for the MuPDF Fitz library
GNU Affero General Public License v3.0
369 stars 87 forks source link
fitz golang golang-wrapper mupdf

go-fitz

Build Status GoDoc Go Report Card

Go wrapper for MuPDF fitz library that can extract pages from PDF, EPUB and MOBI documents as images, text, html or svg.

Build tags

Example

package main

import (
    "fmt"
    "image/jpeg"
    "os"
    "path/filepath"

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

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

    defer doc.Close()

    tmpDir, err := os.MkdirTemp(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{jpeg.DefaultQuality})
        if err != nil {
            panic(err)
        }

        f.Close()
    }
}