import 'dart:io';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:path_provider/path_provider.dart';
import 'package:pdf/pdf.dart';
import 'package:pdf/widgets.dart' as pw;
import 'package:ppmobile/installers/pdf/pdfViewer.dart';
class MyAppforPDf extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: '',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: PdfTest(),
);
}
}
class PdfTest extends StatelessWidget {
final pdf = pw.Document();
writeOnPdf() {
pdf.addPage(
pw.MultiPage(
pageFormat: PdfPageFormat.a4,
margin: pw.EdgeInsets.all(32),
build: (pw.Context context) {
return <pw.Widget>[
pw.Header(
level: 0,
child: pw.Text("1st header"),
),
pw.Paragraph(text: "TEST PDF"),
pw.Paragraph(text: "TEST PDF"),
pw.Paragraph(text: "TEST PDF"),
pw.Paragraph(text: "TEST PDF"),
pw.Paragraph(text: "TEST PDF"),
pw.Paragraph(text: "TEST PDF"),
pw.Header(level: 1, child: pw.Text("2nd ehader")),
pw.Paragraph(text: "TEST PDF"),
pw.Paragraph(text: "TEST PDF"),
pw.Paragraph(text: "TEST PDF"),
pw.Paragraph(text: "TEST PDF"),
pw.Paragraph(text: "TEST PDF"),
pw.Paragraph(text: "TEST PDF"),
pw.Paragraph(text: "TEST PDF"),
pw.Paragraph(text: "TEST PDF"),
pw.Paragraph(text: "TEST PDF"),
];
},
),
);
}
Future savePdf() async {
Directory documentDirectory = await getApplicationDocumentsDirectory();
String documentPath = documentDirectory.path;
File file = File("$documentPath/example.pdf");
file.writeAsBytesSync(pdf.save());
}
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(),
body: Container(
width: double.infinity,
height: double.infinity,
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text(
"PDF TUTORIAL",
style: TextStyle(fontSize: 34),
)
],
),
),
floatingActionButton: FloatingActionButton(
onPressed: () async {
writeOnPdf();
await savePdf();
Directory documentDirectory =
await getApplicationDocumentsDirectory();
String documentPath = documentDirectory.path;
String fullPath = "$documentPath/example.pdf";
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => PDFScreen(
pathPDF: fullPath,
),
),
);
},
child: Icon(Icons.save),
),
);
}
}