MCPcopy
hub / github.com/tdewolff/canvas / Next

Method Next

cmd/pdftext/reader.go:894–925  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

892}
893
894func (r *pdfStreamReader) Next() (string, []any, error) {
895 var vals []any
896 r.i = moveWhiteSpace(r.b, r.i)
897 for r.i < len(r.b) {
898 if 'a' <= r.b[r.i] && r.b[r.i] <= 'z' || 'A' <= r.b[r.i] && r.b[r.i] <= 'Z' || r.b[r.i] == '\'' || r.b[r.i] == '"' {
899 name, n, err := parseName(r.b[r.i:])
900 if err != nil {
901 return "", nil, err
902 }
903 r.i += n
904
905 switch string(name) {
906 case "BI":
907 dict, data, n, err := pdfReadStreamLike(r.b[r.i:], []byte("ID"), []byte("EI"))
908 if err != nil {
909 return "", nil, err
910 }
911 r.i += n
912 vals = append(vals, dict, data)
913 }
914 return string(name), vals, nil
915 }
916
917 val, n, err := pdfReadContentVal(r.b[r.i:])
918 if err != nil {
919 return "", nil, fmt.Errorf("invalid stream: %w", err)
920 }
921 vals = append(vals, val)
922 r.i = moveWhiteSpace(r.b, r.i+n)
923 }
924 return "", nil, io.EOF
925}

Callers 2

NewPDFReaderFunction · 0.45

Calls 4

moveWhiteSpaceFunction · 0.85
parseNameFunction · 0.85
pdfReadStreamLikeFunction · 0.85
pdfReadContentValFunction · 0.85

Tested by

no test coverage detected