init commit
This commit is contained in:
66
README.md
66
README.md
@@ -1,15 +1,26 @@
|
||||
## 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.
|
||||
[](https://github.com/gen2brain/go-fitz/actions)
|
||||
[](https://godoc.org/github.com/gen2brain/go-fitz)
|
||||
[](https://goreportcard.com/report/github.com/gen2brain/go-fitz)
|
||||
|
||||
### Install
|
||||
|
||||
go get -u github.com/karmdip-mi/go-fitz
|
||||
Go wrapper for [MuPDF](http://mupdf.com/) fitz library that can extract pages from PDF, EPUB, MOBI, DOCX, XLSX and PPTX documents as IMG, TXT, HTML or SVG.
|
||||
|
||||
### 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
|
||||
* `pkgconfig` - enable pkg-config (used with `extlib`)
|
||||
* `musl` - use musl compiled library
|
||||
* `nocgo` - experimental [purego](https://github.com/ebitengine/purego) implementation (can also be used with `CGO_ENABLED=0`)
|
||||
|
||||
### Notes
|
||||
|
||||
The bundled libraries are built without CJK fonts, if you need them you must use the external library.
|
||||
|
||||
Calling e.g. Image() or Text() methods concurrently for the same document is not supported.
|
||||
|
||||
Purego implementation requires `libffi` and `libmupdf` shared libraries on runtime.
|
||||
You must set `fitz.FzVersion` in your code or set `FZ_VERSION` environment variable to exact version of the shared library.
|
||||
|
||||
### Example
|
||||
```go
|
||||
@@ -18,11 +29,10 @@ package main
|
||||
import (
|
||||
"fmt"
|
||||
"image/jpeg"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path/filepath"
|
||||
|
||||
"github.com/karmdip-mi/go-fitz"
|
||||
"github.com/gen2brain/go-fitz"
|
||||
)
|
||||
|
||||
func main() {
|
||||
@@ -33,7 +43,7 @@ func main() {
|
||||
|
||||
defer doc.Close()
|
||||
|
||||
tmpDir, err := ioutil.TempDir(os.TempDir(), "fitz")
|
||||
tmpDir, err := os.MkdirTemp(os.TempDir(), "fitz")
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
@@ -57,45 +67,5 @@ func main() {
|
||||
|
||||
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()
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user