Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG] Incorrect table display occurs when multiple rows across pages #538

Closed
schooltech opened this issue Nov 14, 2023 · 3 comments
Closed

Comments

@schooltech
Copy link

Hi @sampila , I just tested the latest v3.52.0 version and the bug is still there when span rows across pages ,
`
font, err := model.NewCompositePdfFontFromTTFFile("./web/public/dist/fonts/microsoft.ttf")
if err != nil {
log.Fatal(err)
}
c := creator.New()
c.EnableFontSubsetting(font)
var PPMM = float64(72 * 1.0 / 25.4)
c.SetPageSize(creator.PageSize{210 * PPMM, 297 * PPMM})
c.SetPageMargins(50, 50, 50, 50)

drawCell := func(table *creator.Table, text string, font *model.PdfFont, colspan int, rowspan int) {
p := c.NewStyledParagraph()
p.Append(text).Style.Font = font
p.SetMargins(0, 0, 5, 5)

cell := table.MultiCell(rowspan, colspan)
cell.SetBorder(creator.CellBorderSideAll, creator.CellBorderStyleSingle, 0.5)
cell.SetHorizontalAlignment(creator.CellHorizontalAlignmentCenter)
cell.SetVerticalAlignment(creator.CellVerticalAlignmentMiddle)
cell.SetIndent(0)
cell.SetContent(p)

}
drawFooter("", c, font)

list := make([]map[string]string, 0)
for i := 0; i < 200; i++ {
m := make(map[string]string)
m[fmt.Sprintf("row-%v", i)] = fmt.Sprintf("name:tom-%v;no:naom-%v;p-0%v", i, i, i)
list = append(list, m)
}

table := c.NewTable(3)
table.SetMargins(10, 10, 10, 10)

index := 0
for _, mp := range list {
for k, v := range mp {
items := strings.Split(v, ";")
drawCell(table, k, font, 1, len(items))
subIndex := 0
for _, item := range items {
drawCell(table, item, font, 1, 1)
if subIndex == 0 {
drawCell(table, k, font, 1, len(items))
}
subIndex++
}

}
index++

}

c.Draw(table)

c.WriteToFile("d:/span-row-over-page.pdf")
`

span-rows-across-pages.pdf

@kellemNegasi
Copy link

kellemNegasi commented Jul 12, 2024

Hi @schooltech , we have investigated and were able to reproduce the issue. Can you try enabling the RowWrap property of the table using

table.EnablePageWrap(true)

This means your table should be initialized as follows.

table := c.NewTable(3)
table.SetMargins(10, 10, 10, 10)
table.EnableRowWrap(true)

@kellemNegasi
Copy link

For reference this issue was opened here and closed as fixed
#534

@kellemNegasi
Copy link

@schooltech I am closing this as fixed for now. Please feel free to open it again if the solution doesn't work or if there is anything missing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants