This commit is contained in:
2026-05-11 11:44:14 +02:00
parent 5c86483563
commit a76180497e
11 changed files with 221 additions and 71 deletions

View File

@@ -1,4 +1,3 @@
import 'dart:typed_data';
import 'package:pdf/pdf.dart';
import 'package:pdf/widgets.dart' as pw;
import 'package:printing/printing.dart';
@@ -7,7 +6,7 @@ import 'package:flux/features/company/models/company_model.dart';
class TicketPdfService {
/// Funzione principale: Genera il PDF A4 con le due metà
Future<Uint8List> generateTicketReceipt(
Future<pw.Document> generateTicketReceipt(
TicketModel ticket,
CompanyModel company,
) async {
@@ -16,6 +15,8 @@ class TicketPdfService {
// Carichiamo il font per essere sicuri che i caratteri siano ok
final font = await PdfGoogleFonts.robotoRegular();
final boldFont = await PdfGoogleFonts.robotoBold();
/* final font = pw.Font.helvetica();
final boldFont = pw.Font.helveticaBold(); */
pdf.addPage(
pw.Page(
@@ -60,7 +61,7 @@ class TicketPdfService {
),
);
return pdf.save();
return pdf;
}
/// Helper per costruire una singola metà (Cliente o Negozio)
@@ -71,8 +72,8 @@ class TicketPdfService {
pw.Font boldFont, {
required bool isForCustomer,
}) {
return pw.Container(
height: 380, // Circa metà A4 meno i margini
return pw.Expanded(
//height: 380, // Circa metà A4 meno i margini
child: pw.Column(
crossAxisAlignment: pw.CrossAxisAlignment.start,
children: [
@@ -276,7 +277,7 @@ class TicketPdfService {
);
}
Future<Uint8List> generateLabelPdf(
Future<pw.Document> generateLabelPdf(
TicketModel ticket,
CompanyModel company,
) async {
@@ -337,6 +338,6 @@ class TicketPdfService {
),
);
return pdf.save();
return pdf;
}
}