added page numbers, title, reduced font size

This commit is contained in:
2026-04-10 18:09:55 +02:00
parent 9d838ad9ec
commit c9279a1504

59
main.go
View File

@@ -1,14 +1,17 @@
package main package main
import ( import (
"github.com/signintech/gopdf"
"encoding/csv" "encoding/csv"
"os"
"log"
"fmt" "fmt"
"log"
"math" "math"
"os"
"github.com/signintech/gopdf"
) )
const title string = "Teilnahmeliste der StugA Lehramt GO-Vollversammlung 07.04.2026"
func main() { func main() {
// Prepare data // Prepare data
file, err := os.Open("list.csv") file, err := os.Open("list.csv")
@@ -35,24 +38,23 @@ func main() {
}) })
pdf.AddTTFFont("inter", "./inter.ttf") pdf.AddTTFFont("inter", "./inter.ttf")
pdf.SetFont("inter", "", 10) pdf.SetMargins(20, 20, 20, 20)
var tableEntries [][]string var tableEntries [][]string
var tablePageIndex = 0 var tablePageIndex = 0
var tablePageLength = 31 var tablePageLength = 36
var isFirst bool = true
// Write data to document // Write data to document
for index, record := range records { for index, record := range records[1:] {
tableEntries = append(tableEntries, []string{ tableEntries = append(tableEntries, []string{
fmt.Sprintf("%d", index), fmt.Sprintf("%d", index+1),
record[3], record[3],
record[5], record[5],
}) })
if index % 31 == 0 { // if index%31 == 0 {
pdf.AddPage() // pdf.AddPage()
} // }
} }
iterations := math.Ceil(float64(len(tableEntries)) / 31.0) iterations := math.Ceil(float64(len(tableEntries)) / 31.0)
@@ -60,16 +62,37 @@ func main() {
for i := 0; i < int(iterations); i += 1 { for i := 0; i < int(iterations); i += 1 {
// create each page here // create each page here
table := pdf.NewTableLayout(24, 24, 24, 24) pdf.AddPage()
table.AddColumn("#", 20, "left") var table gopdf.TableLayout
table.AddColumn("Name", 160, "left")
table.AddColumn("Fächer", 360, "left") if isFirst {
pdf.SetFont("inter", "", 12)
pdf.Cell(nil, title)
pdf.SetFont("inter", "", 10)
isFirst = false
table = pdf.NewTableLayout(20, 40, 21, 1)
} else {
table = pdf.NewTableLayout(20, 20, 21, 1)
}
table.AddColumn("#", 30, "left")
table.AddColumn("Name", 170, "left")
table.AddColumn("Fächer", 340, "left")
for i := tablePageIndex; i < tablePageIndex+tablePageLength; i += 1 { for i := tablePageIndex; i < tablePageIndex+tablePageLength; i += 1 {
table.AddRow() if i >= len(tableEntries) {
break
}
table.AddRow(tableEntries[i])
} }
table.DrawTable()
tablePageIndex += tablePageLength tablePageIndex += tablePageLength
pdf.SetXY(573, 815)
pdf.Cell(nil, fmt.Sprintf("%d", int(i+1)))
} }
// table.SetTableStyle(gopdf.CellStyle{ // table.SetTableStyle(gopdf.CellStyle{
@@ -114,8 +137,6 @@ func main() {
// FontSize: 10, // FontSize: 10,
// }) // })
table.DrawTable()
// Finish document // Finish document
pdf.WritePdf("vvliste.pdf") pdf.WritePdf("vvliste.pdf")
} }