diff options
-rw-r--r-- | fpdf.go | 40 | ||||
-rw-r--r-- | fpdftrans.go | 4 |
2 files changed, 22 insertions, 22 deletions
@@ -777,7 +777,7 @@ func (f *Fpdf) point(x, y float64) { // Outputs quadratic curve from current point func (f *Fpdf) curve(cx0, cy0, x1, y1, cx1, cy1 float64) { - f.outf("%.2f %.2f %.2f %.2f %.2f %.2f c", cx0*f.k, (f.h-cy0)*f.k, x1*f.k, + f.outf("%.5f %.5f %.5f %.5f %.5f %.5f c", cx0*f.k, (f.h-cy0)*f.k, x1*f.k, (f.h-y1)*f.k, cx1*f.k, (f.h-cy1)*f.k) } @@ -796,7 +796,7 @@ func (f *Fpdf) curve(cx0, cy0, x1, y1, cx1, cy1 float64) { // See tutorial 11 for an example of this function. func (f *Fpdf) Curve(x0, y0, cx, cy, x1, y1 float64, styleStr string) { f.point(x0, y0) - f.outf("%.2f %.2f %.2f %.2f v %s", cx*f.k, (f.h-cy)*f.k, x1*f.k, (f.h-y1)*f.k, + f.outf("%.5f %.5f %.5f %.5f v %s", cx*f.k, (f.h-cy)*f.k, x1*f.k, (f.h-y1)*f.k, fillDrawOp(styleStr)) } @@ -815,7 +815,7 @@ func (f *Fpdf) Curve(x0, y0, cx, cy, x1, y1 float64, styleStr string) { // See tutorial 11 for an example of this function. func (f *Fpdf) CurveCubic(x0, y0, cx0, cy0, cx1, cy1, x1, y1 float64, styleStr string) { f.point(x0, y0) - f.outf("%.2f %.2f %.2f %.2f %.2f %.2f c %s", cx0*f.k, (f.h-cy0)*f.k, + f.outf("%.5f %.5f %.5f %.5f %.5f %.5f c %s", cx0*f.k, (f.h-cy0)*f.k, x1*f.k, (f.h-y1)*f.k, cx1*f.k, (f.h-cy1)*f.k, fillDrawOp(styleStr)) } @@ -849,7 +849,7 @@ func (f *Fpdf) Arc(x, y, rx, ry, degRotate, degStart, degEnd float64, styleStr s dtm := dt / 3 if degRotate != 0 { a := -degRotate * math.Pi / 180 - f.outf("q %.2f %.2f %.2f %.2f %.2f %.2f cm", math.Cos(a), -1*math.Sin(a), + f.outf("q %.5f %.5f %.5f %.5f %.5f %.5f cm", math.Cos(a), -1*math.Sin(a), math.Sin(a), math.Cos(a), x, y) x = 0 y = 0 @@ -934,7 +934,7 @@ func (f *Fpdf) gradientClipStart(x, y, w, h float64) { // Save current graphic state and set clipping area f.outf("q %.2f %.2f %.2f %.2f re W n", x*f.k, (f.h-y)*f.k, w*f.k, -h*f.k) // Set up transformation matrix for gradient - f.outf("%.3f 0 0 %.3f %.3f %.3f cm", w*f.k, h*f.k, x*f.k, (f.h-(y+h))*f.k) + f.outf("%.5f 0 0 %.5f %.5f %.5f cm", w*f.k, h*f.k, x*f.k, (f.h-(y+h))*f.k) } func (f *Fpdf) gradientClipEnd() { @@ -1023,12 +1023,12 @@ func (f *Fpdf) ClipRect(x, y, w, h float64, outline bool) { // See tutorial 14 for an example of this function. func (f *Fpdf) ClipText(x, y float64, txtStr string, outline bool) { f.clipNest++ - f.outf("q BT %.2f %.2f Td %d Tr (%s) Tj ET", x*f.k, (f.h-y)*f.k, intIf(outline, 5, 7), f.escape(txtStr)) + f.outf("q BT %.5f %.5f Td %d Tr (%s) Tj ET", x*f.k, (f.h-y)*f.k, intIf(outline, 5, 7), f.escape(txtStr)) } func (f *Fpdf) clipArc(x1, y1, x2, y2, x3, y3 float64) { h := f.h - f.outf("%.2f %.2f %.2f %.2f %.2f %.2f c ", x1*f.k, (h-y1)*f.k, + f.outf("%.5f %.5f %.5f %.5f %.5f %.5f c ", x1*f.k, (h-y1)*f.k, x2*f.k, (h-y2)*f.k, x3*f.k, (h-y3)*f.k) } @@ -1047,22 +1047,22 @@ func (f *Fpdf) ClipRoundedRect(x, y, w, h, r float64, outline bool) { k := f.k hp := f.h myArc := (4.0 / 3.0) * (math.Sqrt2 - 1.0) - f.outf("q %.2f %.2f m", (x+r)*k, (hp-y)*k) + f.outf("q %.5f %.5f m", (x+r)*k, (hp-y)*k) xc := x + w - r yc := y + r - f.outf("%.2f %.2f l", xc*k, (hp-y)*k) + f.outf("%.5f %.5f l", xc*k, (hp-y)*k) f.clipArc(xc+r*myArc, yc-r, xc+r, yc-r*myArc, xc+r, yc) xc = x + w - r yc = y + h - r - f.outf("%.2f %.2f l", (x+w)*k, (hp-yc)*k) + f.outf("%.5f %.5f l", (x+w)*k, (hp-yc)*k) f.clipArc(xc+r, yc+r*myArc, xc+r*myArc, yc+r, xc, yc+r) xc = x + r yc = y + h - r - f.outf("%.2f %.2f l", xc*k, (hp-(y+h))*k) + f.outf("%.5f %.5f l", xc*k, (hp-(y+h))*k) f.clipArc(xc-r*myArc, yc+r, xc-r, yc+r*myArc, xc-r, yc) xc = x + r yc = y + r - f.outf("%.2f %.2f l", x*k, (hp-yc)*k) + f.outf("%.5f %.5f l", x*k, (hp-yc)*k) f.clipArc(xc-r, yc-r*myArc, xc-r*myArc, yc-r, xc, yc-r) f.outf(" W %s", strIf(outline, "S", "n")) } @@ -1082,20 +1082,20 @@ func (f *Fpdf) ClipEllipse(x, y, rx, ry float64, outline bool) { ly := (4.0 / 3.0) * ry * (math.Sqrt2 - 1) k := f.k h := f.h - f.outf("q %.2f %.2f m %.2f %.2f %.2f %.2f %.2f %.2f c", + f.outf("q %.5f %.5f m %.5f %.5f %.5f %.5f %.5f %.5f c", (x+rx)*k, (h-y)*k, (x+rx)*k, (h-(y-ly))*k, (x+lx)*k, (h-(y-ry))*k, x*k, (h-(y-ry))*k) - f.outf("%.2f %.2f %.2f %.2f %.2f %.2f c", + f.outf("%.5f %.5f %.5f %.5f %.5f %.5f c", (x-lx)*k, (h-(y-ry))*k, (x-rx)*k, (h-(y-ly))*k, (x-rx)*k, (h-y)*k) - f.outf("%.2f %.2f %.2f %.2f %.2f %.2f c", + f.outf("%.5f %.5f %.5f %.5f %.5f %.5f c", (x-rx)*k, (h-(y+ly))*k, (x-lx)*k, (h-(y+ry))*k, x*k, (h-(y+ry))*k) - f.outf("%.2f %.2f %.2f %.2f %.2f %.2f c W %s", + f.outf("%.5f %.5f %.5f %.5f %.5f %.5f c W %s", (x+lx)*k, (h-(y+ry))*k, (x+rx)*k, (h-(y+ly))*k, (x+rx)*k, (h-y)*k, @@ -1132,7 +1132,7 @@ func (f *Fpdf) ClipPolygon(points []PointType, outline bool) { k := f.k s.printf("q ") for j, pt := range points { - s.printf("%.2f %.2f %s ", pt.X*k, (h-pt.Y)*k, strIf(j == 0, "m", "l")) + s.printf("%.5f %.5f %s ", pt.X*k, (h-pt.Y)*k, strIf(j == 0, "m", "l")) } s.printf("h W %s", strIf(outline, "S", "n")) f.out(s.String()) @@ -1936,7 +1936,7 @@ func (f *Fpdf) Image(fileStr string, x, y, w, h float64, flow bool, tp string, l } // dbg("h %.2f", h) // q 85.04 0 0 NaN 28.35 NaN cm /I2 Do Q - f.outf("q %.2f 0 0 %.2f %.2f %.2f cm /I%d Do Q", w*f.k, h*f.k, x*f.k, (f.h-(y+h))*f.k, info.i) + f.outf("q %.5f 0 0 %.5f %.5f %.5f cm /I%d Do Q", w*f.k, h*f.k, x*f.k, (f.h-(y+h))*f.k, info.i) if link > 0 || len(linkStr) > 0 { f.newLink(x, y, w, h, link, linkStr) } @@ -2769,10 +2769,10 @@ func (f *Fpdf) putGradients() { f.newobj() f.outf("<</ShadingType %d /ColorSpace /DeviceRGB", gr.tp) if gr.tp == 2 { - f.outf("/Coords [%.3f %.3f %.3f %.3f] /Function %d 0 R /Extend [true true]>>", + f.outf("/Coords [%.5f %.5f %.5f %.5f] /Function %d 0 R /Extend [true true]>>", gr.x1, gr.y1, gr.x2, gr.y2, f1) } else if gr.tp == 3 { - f.outf("/Coords [%.3f %.3f 0 %.3f %.3f %.3f] /Function %d 0 R /Extend [true true]>>", + f.outf("/Coords [%.5f %.5f 0 %.5f %.5f %.5f] /Function %d 0 R /Extend [true true]>>", gr.x1, gr.y1, gr.x2, gr.y2, gr.r, f1) } f.out("endobj") diff --git a/fpdftrans.go b/fpdftrans.go index 95b9ea1..86d9de8 100644 --- a/fpdftrans.go +++ b/fpdftrans.go @@ -20,7 +20,7 @@ type TransformMatrix struct { // finally a call to TransformEnd(). All transformation contexts must be // properly ended prior to outputting the document. // -// See tutorial 17 for a transformation examples. +// See tutorial 17 for transformation examples. func (f *Fpdf) TransformBegin() { f.transformNest++ f.out("q") @@ -162,7 +162,7 @@ func (f *Fpdf) TransformSkew(angleX, angleY, x, y float64) { // TransformRotate() and TransformMirrorVertical() instead. func (f *Fpdf) Transform(tm TransformMatrix) { if f.transformNest > 0 { - f.outf("%.3f %.3f %.3f %.3f %.3f %.3f cm", + f.outf("%.5f %.5f %.5f %.5f %.5f %.5f cm", tm.A, tm.B, tm.C, tm.D, tm.E, tm.F) } else if f.err == nil { f.err = fmt.Errorf("Transformation context is not active") |