Files
query-orchestration/internal/document/text/documentText.go
T

44 lines
895 B
Go
Raw Normal View History

package documenttext
import (
"context"
"fmt"
"io"
"strings"
documenttypes "queryorchestration/internal/document/types"
)
func (s *Service) getDocumentText(ctx context.Context, doc documenttypes.File) (io.Reader, error) {
pagesNum, err := doc.GetPageCount(ctx)
if err != nil {
return nil, err
}
textPages := make([]string, pagesNum)
for i := range pagesNum {
text, err := s.getPageText(ctx, doc, i)
if err != nil {
return nil, err
}
textPages[i] = text
}
text, err := s.mergeDocument(textPages)
if err != nil {
return nil, err
}
return text, nil
}
func (s *Service) mergeDocument(pages []string) (io.Reader, error) {
var builder strings.Builder
for i, page := range pages {
builder.WriteString(fmt.Sprintf("Start of Page No. = %d\n\n", i+1))
builder.WriteString(page)
builder.WriteString("\n\n")
}
return strings.NewReader(builder.String()), nil
}