Fix PDF report UTF-8 encoding for residence names and task fields
Add UnicodeTranslatorFromDescriptor to convert UTF-8 strings to Windows-1252 for gofpdf built-in fonts. Prevents garbled characters in residence names, task titles, categories, priorities, and statuses. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -22,6 +22,9 @@ func (s *PDFService) GenerateTasksReportPDF(report *TasksReportResponse) ([]byte
|
||||
pdf.SetMargins(15, 15, 15)
|
||||
pdf.AddPage()
|
||||
|
||||
// Translate UTF-8 strings to Windows-1252 for built-in fonts
|
||||
tr := pdf.UnicodeTranslatorFromDescriptor("")
|
||||
|
||||
// Header
|
||||
pdf.SetFont("Arial", "B", 20)
|
||||
pdf.SetTextColor(51, 51, 51)
|
||||
@@ -31,7 +34,7 @@ func (s *PDFService) GenerateTasksReportPDF(report *TasksReportResponse) ([]byte
|
||||
// Residence name
|
||||
pdf.SetFont("Arial", "", 14)
|
||||
pdf.SetTextColor(102, 102, 102)
|
||||
pdf.Cell(0, 8, report.ResidenceName)
|
||||
pdf.Cell(0, 8, tr(report.ResidenceName))
|
||||
pdf.Ln(10)
|
||||
|
||||
// Generated date
|
||||
@@ -152,10 +155,10 @@ func (s *PDFService) GenerateTasksReportPDF(report *TasksReportResponse) ([]byte
|
||||
}
|
||||
|
||||
pdf.SetTextColor(51, 51, 51)
|
||||
pdf.CellFormat(70, 7, title, "1", 0, "L", true, 0, "")
|
||||
pdf.CellFormat(30, 7, task.Category, "1", 0, "C", true, 0, "")
|
||||
pdf.CellFormat(25, 7, task.Priority, "1", 0, "C", true, 0, "")
|
||||
pdf.CellFormat(25, 7, status, "1", 0, "C", true, 0, "")
|
||||
pdf.CellFormat(70, 7, tr(title), "1", 0, "L", true, 0, "")
|
||||
pdf.CellFormat(30, 7, tr(task.Category), "1", 0, "C", true, 0, "")
|
||||
pdf.CellFormat(25, 7, tr(task.Priority), "1", 0, "C", true, 0, "")
|
||||
pdf.CellFormat(25, 7, tr(status), "1", 0, "C", true, 0, "")
|
||||
pdf.CellFormat(30, 7, dueDate, "1", 0, "C", true, 0, "")
|
||||
pdf.Ln(-1)
|
||||
}
|
||||
@@ -165,7 +168,7 @@ func (s *PDFService) GenerateTasksReportPDF(report *TasksReportResponse) ([]byte
|
||||
pdf.SetY(-25)
|
||||
pdf.SetFont("Arial", "I", 9)
|
||||
pdf.SetTextColor(128, 128, 128)
|
||||
pdf.Cell(0, 10, fmt.Sprintf("honeyDue - Tasks Report for %s", report.ResidenceName))
|
||||
pdf.Cell(0, 10, tr(fmt.Sprintf("honeyDue - Tasks Report for %s", report.ResidenceName)))
|
||||
pdf.Ln(5)
|
||||
pdf.Cell(0, 10, fmt.Sprintf("Generated on %s", time.Now().UTC().Format("2006-01-02 15:04:05 UTC")))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user