github.com/signintech/pdft@v0.5.0/xref_data.go (about)

     1  package pdft
     2  
     3  import (
     4  	"errors"
     5  	"strconv"
     6  	"strings"
     7  )
     8  
     9  // XrefData nnnnnnnnnn ggggg x eol
    10  type XrefData struct {
    11  	N10Digit int    //nnnnnnnnnn
    12  	G5Digit  int    //ggggg
    13  	Keyword  string //x
    14  }
    15  
    16  func (x *XrefData) parse(xrefline string) error {
    17  	xrefline = strings.TrimSpace(xrefline)
    18  	tokens := strings.Split(xrefline, " ")
    19  	if len(tokens) < 3 {
    20  		return errors.New("bad xref format")
    21  	}
    22  	var err error
    23  	x.N10Digit, err = strconv.Atoi(strings.TrimSpace(tokens[0]))
    24  	if err != nil {
    25  		return err
    26  	}
    27  
    28  	x.G5Digit, err = strconv.Atoi(strings.TrimSpace(tokens[1]))
    29  	if err != nil {
    30  		return err
    31  	}
    32  
    33  	x.Keyword = strings.TrimSpace(tokens[2])
    34  	if x.Keyword != "n" && x.Keyword != "f" {
    35  		return errors.New("unkonw xref keyword")
    36  	}
    37  
    38  	return nil
    39  }