Documentation
¶
Overview ¶
Package fitz provides wrapper for the [MuPDF](http://mupdf.com/) fitz library that can extract pages from PDF and EPUB documents as images, text, html or svg.
Index ¶
- Variables
- type Document
- func (f *Document) Close() error
- func (f *Document) HTML(pageNumber int, header bool) (string, error)
- func (f *Document) Image(pageNumber int) (image.Image, error)
- func (f *Document) ImageDPI(pageNumber int, dpi float64) (image.Image, error)
- func (f *Document) ImagePNG(pageNumber int, dpi float64) ([]byte, error)
- func (f *Document) Metadata() map[string]string
- func (f *Document) NumPage() int
- func (f *Document) SVG(pageNumber int) (string, error)
- func (f *Document) Text(pageNumber int) (string, error)
- func (f *Document) ToC() ([]Outline, error)
- type Outline
Examples ¶
Constants ¶
This section is empty.
Variables ¶
View Source
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") ErrLoadOutline = errors.New("fitz: cannot load outline") )
Errors.
Functions ¶
This section is empty.
Types ¶
type Document ¶
type Document struct {
// contains filtered or unexported fields
}
Document represents fitz document.
func New ¶
New returns new fitz document.
Example ¶
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 ¶
NewFromMemory returns new fitz document from byte slice.
func NewFromReader ¶
NewFromReader returns new fitz document from io.Reader.
type Outline ¶
type Outline struct {
// Hierarchy level of the entry (starting from 1).
Level int
// Title of outline item.
Title string
// Destination in the document to be displayed when this outline item is activated.
URI string
// The page number of an internal link.
Page int
// Top.
Top float64
}
Outline type.
Click to show internal directories.
Click to hide internal directories.