simple_pdf_generator 0.0.1 copy "simple_pdf_generator: ^0.0.1" to clipboard
simple_pdf_generator: ^0.0.1 copied to clipboard

A lightweight Flutter package to generate PDFs from structured data.

example/lib/main.dart

import 'dart:io';
import 'package:flutter/material.dart';
import 'package:path_provider/path_provider.dart';
import 'package:open_file_safe/open_file_safe.dart';
import 'package:simple_pdf_generator/simple_pdf_generator.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Simple PDF Generator Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: const HomePage(),
    );
  }
}

class HomePage extends StatefulWidget {
  const HomePage({super.key});

  @override
  State<HomePage> createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {
  // Dummy data
  List<Map<String, dynamic>> get summaryReport => [
        {
          "date": "2026-01-01",
          "avgFatcm": 3.5,
          "avgSnfcm": 8.2,
          "avgClrcm": 25,
          "totalQtycm": 120,
          "totalAmtcm": 3000,
        },
        {
          "date": "2026-01-02",
          "avgFatcm": 3.8,
          "avgSnfcm": 8.5,
          "avgClrcm": 26,
          "totalQtycm": 150,
          "totalAmtcm": 3500,
        },
        {
          "date": "2026-01-03",
          "avgFatcm": 3.8,
          "avgSnfcm": 8.5,
          "avgClrcm": 26,
          "totalQtycm": 150,
          "totalAmtcm": 3500,
        },
        {
          "date": "2026-01-04",
          "avgFatcm": 3.8,
          "avgSnfcm": 8.5,
          "avgClrcm": 26,
          "totalQtycm": 150,
          "totalAmtcm": 3500,
        },
      ];

  // Generate PDF
  void generatePdf() async {
    try {
      final pdf = await SimplePdf.generate(
        header: PdfHeader(
          title: "My Organization",
          subtitle: "Summary Report",
          extra: "01/01/2026 - 10/01/2026",
        ),
        table: PdfTable(
          headers: ["Date", "Fat", "SNF", "CLR", "Qty", "Amount"],
          data: summaryReport,
          mapper: (item) => {
            "Date": item['date'].toString(),
            "Fat": (item['avgFatcm'] ?? 0).toString(),
            "SNF": (item['avgSnfcm'] ?? 0).toString(),
            "CLR": (item['avgClrcm'] ?? 0).toString(),
            "Qty": (item['totalQtycm'] ?? 0).toString(),
            "Amount": (item['totalAmtcm'] ?? 0).toString(),
          },
        ),
        footer: PdfFooter(
          text: "Generated by simple_pdf_generator",
        ),
      );

      // Save file
      final output = await getTemporaryDirectory();
      final file = File("${output.path}/App-Overview-Summary.pdf");

      await file.writeAsBytes(await pdf.save());

      // Open file
      await OpenFile.open(file.path);

      // Show success
      ScaffoldMessenger.of(context).showSnackBar(
        SnackBar(content: Text("PDF saved at: ${file.path}")),
      );
    } catch (e) {
      print("Error generating PDF: $e");

      ScaffoldMessenger.of(context).showSnackBar(
        const SnackBar(content: Text("Error generating PDF")),
      );
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('PDF Generator Example'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: generatePdf,
          child: const Text("Generate PDF"),
        ),
      ),
    );
  }
}
4
likes
0
points
419
downloads

Publisher

verified publishermohsinpatel.online

Weekly Downloads

A lightweight Flutter package to generate PDFs from structured data.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

flutter, pdf

More

Packages that depend on simple_pdf_generator