From 5e2ce123fc0c4d347cb6b31ac6f1346c0bf4ecd7 Mon Sep 17 00:00:00 2001 From: Bernard Xie Date: Tue, 28 Feb 2023 14:14:38 -0800 Subject: [PATCH] pass viewbox coords in --- d2cli/main.go | 11 ++++++++++- lib/pdf/pdf.go | 11 +---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/d2cli/main.go b/d2cli/main.go index 4c405f0cf8..11f5345694 100644 --- a/d2cli/main.go +++ b/d2cli/main.go @@ -8,6 +8,7 @@ import ( "os" "os/exec" "path/filepath" + "strconv" "strings" "time" @@ -489,7 +490,15 @@ func renderPDF(ctx context.Context, ms *xmain.State, plugin d2plugin.Plugin, ske } viewboxSlice := appendix.FindViewboxSlice(svg) - err = pdf.AddPDFPage(pngImg, currBoardPath, themeID, rootFill, diagram.Shapes, pad, viewboxSlice) + viewboxX, err := strconv.ParseFloat(viewboxSlice[0], 64) + if err != nil { + return svg, err + } + viewboxY, err := strconv.ParseFloat(viewboxSlice[1], 64) + if err != nil { + return svg, err + } + err = pdf.AddPDFPage(pngImg, currBoardPath, themeID, rootFill, diagram.Shapes, pad, viewboxX, viewboxY) if err != nil { return svg, err } diff --git a/lib/pdf/pdf.go b/lib/pdf/pdf.go index 731024f71b..f92d9a1978 100644 --- a/lib/pdf/pdf.go +++ b/lib/pdf/pdf.go @@ -3,7 +3,6 @@ package pdf import ( "bytes" "math" - "strconv" "strings" "github.com/jung-kurt/gofpdf" @@ -59,7 +58,7 @@ func (g *GoFPDF) GetFillRGB(themeID int64, fill string) (color.RGB, error) { return color.Hex2RGB(fill) } -func (g *GoFPDF) AddPDFPage(png []byte, boardPath []string, themeID int64, fill string, shapes []d2target.Shape, pad int64, viewboxSlice []string) error { +func (g *GoFPDF) AddPDFPage(png []byte, boardPath []string, themeID int64, fill string, shapes []d2target.Shape, pad int64, viewboxX, viewboxY float64) error { var opt gofpdf.ImageOptions opt.ImageType = "png" imageInfo := g.pdf.RegisterImageOptionsReader(strings.Join(boardPath, "/"), opt, bytes.NewReader(png)) @@ -126,14 +125,6 @@ func (g *GoFPDF) AddPDFPage(png []byte, boardPath []string, themeID int64, fill // Draw external links for _, shape := range shapes { if shape.Link != "" { - viewboxX, err := strconv.ParseFloat(viewboxSlice[0], 64) - if err != nil { - return err - } - viewboxY, err := strconv.ParseFloat(viewboxSlice[1], 64) - if err != nil { - return err - } linkX := imageX + float64(shape.Pos.X) - viewboxX - float64(shape.StrokeWidth) linkY := imageY + float64(shape.Pos.Y) - viewboxY - float64(shape.StrokeWidth) linkWidth := float64(shape.Width) + float64(shape.StrokeWidth*2)