From 1dee51a7cdc423e49da65cac9c17228278ab2394 Mon Sep 17 00:00:00 2001 From: mark-cachy Date: Mon, 11 May 2026 17:13:57 +0200 Subject: [PATCH] prova con metodo pdf vecchio programma assistenza --- lib/features/tickets/ui/ticket_form_screen.dart | 10 ++++++---- .../tickets/utils/ticket_pdf_service.dart | 15 ++++++++------- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/lib/features/tickets/ui/ticket_form_screen.dart b/lib/features/tickets/ui/ticket_form_screen.dart index f3dc2ed..659364f 100644 --- a/lib/features/tickets/ui/ticket_form_screen.dart +++ b/lib/features/tickets/ui/ticket_form_screen.dart @@ -179,17 +179,19 @@ class _TicketFormScreenState extends State { _ActionButton( icon: Icons.print, label: "Ricevuta A4", - onTap: () async { + onTap: () { + TicketPdfService().generateTicketReceipt(ticket); + // 1. Costruiamo la struttura (velocissimo) - final doc = await TicketPdfService() - .generateTicketReceipt(ticket, company); + /* final doc = await TicketPdfService() + .generateTicketReceipt(ticket); // 2. Lanciamo layoutPdf esattamente come facevi tu! await Printing.layoutPdf( name: 'Ricevuta_${ticket.referenceId}.pdf', onLayout: (PdfPageFormat format) async => doc.save(), // La magia è qui! - ); + ); */ }, ), if (company.labelFormat != LabelFormat.none) diff --git a/lib/features/tickets/utils/ticket_pdf_service.dart b/lib/features/tickets/utils/ticket_pdf_service.dart index 37c3efd..4045d5f 100644 --- a/lib/features/tickets/utils/ticket_pdf_service.dart +++ b/lib/features/tickets/utils/ticket_pdf_service.dart @@ -1,3 +1,5 @@ +import 'package:flux/core/blocs/session/session_cubit.dart'; +import 'package:get_it/get_it.dart'; import 'package:pdf/pdf.dart'; import 'package:pdf/widgets.dart' as pw; import 'package:printing/printing.dart'; @@ -5,18 +7,15 @@ import 'package:flux/features/tickets/models/ticket_model.dart'; import 'package:flux/features/company/models/company_model.dart'; class TicketPdfService { + final CompanyModel company = GetIt.I.get().state.company!; + /// Funzione principale: Genera il PDF A4 con le due metà - Future generateTicketReceipt( - TicketModel ticket, - CompanyModel company, - ) async { + Future generateTicketReceipt(TicketModel ticket) async { final pdf = pw.Document(); // 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( @@ -61,7 +60,9 @@ class TicketPdfService { ), ); - return pdf; + await Printing.layoutPdf( + onLayout: (PdfPageFormat format) async => pdf.save(), + ); } /// Helper per costruire una singola metà (Cliente o Negozio)