1
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
package common
|
||||
|
||||
import (
|
||||
"io"
|
||||
"os"
|
||||
"strings"
|
||||
|
||||
"github.com/pdfcpu/pdfcpu/pkg/api"
|
||||
)
|
||||
|
||||
type pdfParser struct{}
|
||||
|
||||
// Parse PDF:抽取全部文本,按页分隔(分页符供分块器识别)
|
||||
func (p *pdfParser) Parse(path string) (string, error) {
|
||||
f, err := os.Open(path)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
defer f.Close()
|
||||
|
||||
var sb strings.Builder
|
||||
err = api.ExtractContent(f, nil, func(r io.Reader, _ int) error {
|
||||
b, err := io.ReadAll(r)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
sb.Write(b)
|
||||
sb.WriteString("\n\n")
|
||||
return nil
|
||||
}, nil)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
return sb.String(), nil
|
||||
}
|
||||
Reference in New Issue
Block a user