aboutsummaryrefslogtreecommitdiff
path: root/cmd/pdf/pdf.go
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/pdf/pdf.go')
-rw-r--r--cmd/pdf/pdf.go55
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("------------------------------")
+ }
+
+}