# go-fitz **Repository Path**: hashwing/go-fitz ## Basic Information - **Project Name**: go-fitz - **Description**: No description available - **Primary Language**: Unknown - **License**: AGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2020-07-21 - **Last Updated**: 2021-04-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## go-fitz [![TravisCI Build Status](https://travis-ci.org/gen2brain/go-fitz.svg?branch=master)](https://travis-ci.org/gen2brain/go-fitz) [![AppVeyor Build Status](https://ci.appveyor.com/api/projects/status/vuuoq9epsd1sa007?svg=true)](https://ci.appveyor.com/project/gen2brain/go-fitz) [![GoDoc](https://godoc.org/github.com/gen2brain/go-fitz?status.svg)](https://godoc.org/github.com/gen2brain/go-fitz) [![Go Report Card](https://goreportcard.com/badge/github.com/gen2brain/go-fitz?branch=master)](https://goreportcard.com/report/github.com/gen2brain/go-fitz) Go wrapper for [MuPDF](http://mupdf.com/) fitz library that can extract pages from PDF and EPUB documents as images, text, html or svg. ### Install go get -u github.com/gen2brain/go-fitz ### Build tags * `extlib` - use external MuPDF library * `static` - build with static external MuPDF library (used with `extlib`) * `nopie` - use this with GCC older then 7 ### Example ```go package main import ( "fmt" "image/jpeg" "io/ioutil" "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 := 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{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() } } ```