v0.0.496 wpdf fixes and wpdf test.go
All checks were successful
Build Docker and Deploy / Run goext test-suite (push) Successful in 4m58s
All checks were successful
Build Docker and Deploy / Run goext test-suite (push) Successful in 4m58s
This commit is contained in:
@@ -25,6 +25,7 @@ type PDFCellOpt struct {
|
||||
borderColor *PDFColor
|
||||
fillColor *PDFColor
|
||||
autoWidthPaddingX *float64
|
||||
debug *bool
|
||||
}
|
||||
|
||||
func NewPDFCellOpt() *PDFCellOpt {
|
||||
@@ -158,6 +159,11 @@ func (opt *PDFCellOpt) Alpha(alpha float64, blendMode PDFBlendMode) *PDFCellOpt
|
||||
return opt
|
||||
}
|
||||
|
||||
func (opt *PDFCellOpt) Debug(v bool) *PDFCellOpt {
|
||||
opt.debug = &v
|
||||
return opt
|
||||
}
|
||||
|
||||
func (opt *PDFCellOpt) Copy() *PDFCellOpt {
|
||||
c := *opt
|
||||
return &c
|
||||
@@ -186,7 +192,7 @@ func (b *WPDFBuilder) Cell(txt string, opts ...*PDFCellOpt) {
|
||||
txtTR := b.tr(txt)
|
||||
|
||||
width := float64(0)
|
||||
height := b.cellHeight + b.cellSpacing
|
||||
var height *float64 = nil
|
||||
border := BorderNone
|
||||
ln := BreakToNextLine
|
||||
align := AlignLeft
|
||||
@@ -204,10 +210,11 @@ func (b *WPDFBuilder) Cell(txt string, opts ...*PDFCellOpt) {
|
||||
var borderColor *PDFColor
|
||||
var fillColor *PDFColor
|
||||
autoWidthPaddingX := float64(0)
|
||||
debug := b.debug
|
||||
|
||||
for _, opt := range opts {
|
||||
width = langext.Coalesce(opt.width, width)
|
||||
height = langext.Coalesce(opt.height, height)
|
||||
height = langext.CoalesceOpt(opt.height, height)
|
||||
border = langext.Coalesce(opt.border, border)
|
||||
ln = langext.Coalesce(opt.ln, ln)
|
||||
align = langext.Coalesce(opt.align, align)
|
||||
@@ -225,6 +232,7 @@ func (b *WPDFBuilder) Cell(txt string, opts ...*PDFCellOpt) {
|
||||
borderColor = langext.CoalesceOpt(opt.borderColor, borderColor)
|
||||
fillColor = langext.CoalesceOpt(opt.fillColor, fillColor)
|
||||
autoWidthPaddingX = langext.Coalesce(opt.autoWidthPaddingX, autoWidthPaddingX)
|
||||
debug = langext.Coalesce(opt.debug, debug)
|
||||
}
|
||||
|
||||
if fontNameOverride != nil || fontStyleOverride != nil || fontSizeOverride != nil {
|
||||
@@ -238,6 +246,11 @@ func (b *WPDFBuilder) Cell(txt string, opts ...*PDFCellOpt) {
|
||||
defer func() { b.SetFont(oldFontName, oldFontStyle, oldFontSize) }()
|
||||
}
|
||||
|
||||
if height == nil {
|
||||
// (do after SetFont, so that b.cellHeight is correctly set to fontOverride)
|
||||
height = langext.Ptr(b.cellHeight + b.cellSpacing)
|
||||
}
|
||||
|
||||
if textColor != nil {
|
||||
oldColorR, oldColorG, oldColorB := b.b.GetTextColor()
|
||||
b.SetTextColor(textColor.R, textColor.G, textColor.B)
|
||||
@@ -267,10 +280,22 @@ func (b *WPDFBuilder) Cell(txt string, opts ...*PDFCellOpt) {
|
||||
}
|
||||
|
||||
if autoWidth {
|
||||
width = b.b.GetStringWidth(txtTR) + autoWidthPaddingX
|
||||
width = b.GetStringWidth(txtTR, langext.ArrDeRef(opts)...) + autoWidthPaddingX
|
||||
}
|
||||
|
||||
b.b.CellFormat(width, height, txtTR, string(border), int(ln), string(align), fill, link, linkStr)
|
||||
xBefore, yBefore := b.b.GetXY()
|
||||
|
||||
b.b.CellFormat(width, *height, txtTR, string(border), int(ln), string(align), fill, link, linkStr)
|
||||
|
||||
if debug {
|
||||
if ln == BreakToNextLine {
|
||||
b.Rect(b.GetPageWidth()-xBefore-b.GetMarginRight(), *height, RectOutline, NewPDFRectOpt().X(xBefore).Y(yBefore).LineWidth(0.25).DrawColor(0, 128, 0))
|
||||
} else if ln == BreakToRight {
|
||||
b.Rect(b.GetX()-xBefore, *height, RectOutline, NewPDFRectOpt().X(xBefore).Y(yBefore).LineWidth(0.25).DrawColor(0, 128, 0))
|
||||
} else if ln == BreakToBelow {
|
||||
b.Rect(b.GetPageWidth(), *height, RectOutline, NewPDFRectOpt().X(xBefore).Y(yBefore).LineWidth(0.25).DrawColor(0, 128, 0))
|
||||
}
|
||||
}
|
||||
|
||||
if extraLn != 0 {
|
||||
b.b.Ln(extraLn)
|
||||
|
Reference in New Issue
Block a user