func (t *SvgTextT) TShow(a []byte) { tx := t.Pdf.ForcedArray(a) // FIXME: Should be "ForcedSimpleArray()" for k := range tx { if tx[k][0] == '(' || tx[k][0] == '<' { part := space_split(ps.String(tx[k])) for y := range part { tmp, adv := t.Utf8Advance(part[y]) res := strm.Add(t.x, adv) p := 0 for len(tmp) > p && tmp[p] == 32 { p++ } if p > 0 { _, ta := t.Utf8Advance(tmp[0:p]) t.x = strm.Add(t.x, ta) tmp = tmp[p:] } t.Drw.Write.Out( "<g transform=\"matrix(%s,%s,%s,%s,%s,%s)\">\n"+ "<text x=\"%s\" y=\"%s\""+ " font-size=\"%s\""+ " style=\"stroke:none;%v\""+ " fill=\"%s\">%s</text>\n"+ "</g>\n", t.matrix[0], t.matrix[1], strm.Neg(t.matrix[2]), strm.Neg(t.matrix[3]), t.matrix[4], t.matrix[5], t.x, t.y, t.Drw.TConfD.FontSize, t.Style(t.Drw.TConfD.Font), t.Drw.ConfigD.FillColor, string(util.ToXML(tmp))) t.x = res } } else { t.x = strm.Sub(t.x, strm.Mul(string(tx[k]), "0.01")) } } }
}, "'": func(pd *PdfDrawerT) { pd.Text.TNextLine() pd.Text.TShow(pd.Stack.Pop()) }, "BT": func(pd *PdfDrawerT) { pd.Text.TSetMatrix(nil) }, "ET": func(pd *PdfDrawerT) { }, "T*": func(pd *PdfDrawerT) { pd.Text.TNextLine() }, "TD": func(pd *PdfDrawerT) { a := pd.Stack.Drop(2) pd.TConf.SetLeading(util.Bytes(strm.Neg(string(a[1])))) pd.Text.TMoveTo(a) }, "TJ": func(pd *PdfDrawerT) { pd.Text.TShow(pd.Stack.Pop()) }, "Td": func(pd *PdfDrawerT) { a := pd.Stack.Drop(2) pd.Text.TMoveTo(a) }, "Tj": func(pd *PdfDrawerT) { pd.Text.TShow(pd.Stack.Pop()) }, "Tm": func(pd *PdfDrawerT) { a := pd.Stack.Drop(6) pd.Text.TSetMatrix(a)