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