Example #1
0
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"))
		}
	}
}
Example #2
0
	},
	"'": 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)