html_to_pdf 0.7.2
html_to_pdf: ^0.7.2 copied to clipboard
Flutter plugin for generating PDF documents from HTML code templates
example/lib/main.dart
import 'dart:async';
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:html_to_pdf/html_to_pdf.dart';
import 'package:path_provider/path_provider.dart';
import 'package:pdf_viewer_plugin/pdf_viewer_plugin.dart';
void main() {
runApp(
MaterialApp(
home: MyApp(),
),
);
}
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
String? generatedPdfFilePath;
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: SafeArea(
child: SizedBox(
width: MediaQuery.of(context).size.width,
child: buildBody(),
),
),
),
);
}
Column buildBody() {
return Column(
children: [
Expanded(
child: generatedPdfFilePath != null
? PdfView(path: generatedPdfFilePath!)
: SizedBox(),
),
buildButton(),
],
);
}
Padding buildButton() {
return Padding(
padding: const EdgeInsets.symmetric(vertical: 12.0),
child: ElevatedButton(
child: Text("Open Generated PDF Preview"),
onPressed: generateExampleDocument,
),
);
}
Future<void> generateExampleDocument() async {
final htmlContent = """
<!DOCTYPE html>
<html>
<head>
<style>
table, th, td {
border: 1px solid black;
border-collapse: collapse;
}
th, td, p {
padding: 5px;
text-align: left;
}
</style>
</head>
<body>
<h2>PDF Generated with flutter_html_to_pdf plugin</h2>
<table style="width:100%">
<caption>Sample HTML Table</caption>
<tr>
<th>Month</th>
<th>Savings</th>
</tr>
<tr>
<td>January</td>
<td>100</td>
</tr>
<tr>
<td>February</td>
<td>50</td>
</tr>
</table>
<p>Image loaded from web</p>
<img src="https://i.imgur.com/wxaJsXF.png" alt="web-img">
</body>
</html>
""";
Directory appDocDir = await getApplicationDocumentsDirectory();
final targetPath = appDocDir.path;
final targetFileName = "example-pdf";
final generatedPdfFile = await FlutterHtmlToPdf.convertFromHtmlContent(
htmlContent: htmlContent,
printPdfConfiguration: PrintPdfConfiguration(
targetDirectory: targetPath,
targetName: targetFileName,
printSize: PrintSize.A4,
printOrientation: PrintOrientation.Portrait,
),
);
setState(
() {
generatedPdfFilePath = generatedPdfFile.path;
},
);
}
}