prova con metodo pdf vecchio programma assistenza

This commit is contained in:
2026-05-11 17:13:57 +02:00
parent a76180497e
commit 1dee51a7cd
2 changed files with 14 additions and 11 deletions

View File

@@ -179,17 +179,19 @@ class _TicketFormScreenState extends State<TicketFormScreen> {
_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)

View File

@@ -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<SessionCubit>().state.company!;
/// Funzione principale: Genera il PDF A4 con le due metà
Future<pw.Document> generateTicketReceipt(
TicketModel ticket,
CompanyModel company,
) async {
Future<void> 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)