diff --git a/internal/services/pdf_service.go b/internal/services/pdf_service.go index 2843068..3d0abc3 100644 --- a/internal/services/pdf_service.go +++ b/internal/services/pdf_service.go @@ -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")))