diff options
Diffstat (limited to 'cmd/pdf')
| -rw-r--r-- | cmd/pdf/pdf.go | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/cmd/pdf/pdf.go b/cmd/pdf/pdf.go new file mode 100644 index 0000000..cb6aeb7 --- /dev/null +++ b/cmd/pdf/pdf.go @@ -0,0 +1,55 @@ +package main + +import ( + "fmt" + "log" + "os" + + "github.com/unidoc/unipdf/v4/extractor" + "github.com/unidoc/unipdf/v4/model" +) + +func main() { + f, err := os.Open("../../test.pdf") + if err != nil { + log.Fatalf("Failed to open PDF: %v\n", err) + } + defer f.Close() + pdfReader, err := model.NewPdfReader(f) + if err != nil { + log.Fatalf("Failed to read PDF: %v\n", err) + } + numPages, err := pdfReader.GetNumPages() + if err != nil { + log.Fatalf("Failed to retrieve the number of pages: %v\n", err) + } + fmt.Printf("Total number of pages: %d\n", numPages) + + fmt.Printf("--------------------\n") + fmt.Printf("PDF to text extraction:\n") + fmt.Printf("--------------------\n") + for i := 0; i < numPages; i++ { + pageNum := i + 1 + + page, err := pdfReader.GetPage(pageNum) + if err != nil { + panic(err) + } + + ex, err := extractor.New(page) + if err != nil { + panic(err) + } + + text, err := ex.ExtractText() + if err != nil { + panic(err) + } + + fmt.Println("------------------------------") + fmt.Printf("Page %d:\n", pageNum) + fmt.Printf("\"%s\"\n", text) + fmt.Println("------------------------------") + } + +} |
