import 'package:flutter/material.dart';
import 'package:pdf/pdf.dart';
import 'package:pdf/widgets.dart' as pw;
import 'package:printing/printing.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Printing Demo'),
),
floatingActionButton: FloatingActionButton(
child: Icon(Icons.print),
tooltip: 'Print Document',
onPressed: () {
// This is where we print the document
Printing.layoutPdf(
// [onLayout] will be called multiple times
// when the user changes the printer or printer settings
onLayout: (PdfPageFormat format) {
// Any valid Pdf document can be returned here as a list of int
return buildPdf(format);
},
);
},
),
body: Center(
child: Text('Click on the print button below'),
),
),
);
}
/// This method takes a page format and generates the Pdf file data
Future<Uint8List> buildPdf(PdfPageFormat format) async {
// Create the Pdf document
final pw.Document doc = pw.Document();
// Add one page with centered text "Hello World"
doc.addPage(
pw.Page(
pageFormat: format,
build: (pw.Context context) {
return pw.ConstrainedBox(
constraints: pw.BoxConstraints.expand(),
child: pw.FittedBox(
child: pw.Text('Hello World'),
),
);
},
),
);
// Build and return the final Pdf file data
return await doc.save();
}
}
demo
Folders and files
Name | Name | Last commit date | ||
---|---|---|---|---|
parent directory.. | ||||