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

A lightweight Flutter package to generate PDFs from structured data.

example/lib/main.dart

// ignore_for_file: public_member_api_docs

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",
        ),
        tables: [
          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(),
            },
          ),
          PdfTable(
            headers: ["Metric", "Value"],
            data: const [
              {"Metric": "Rows", "Value": "4"},
              {"Metric": "Period", "Value": "Jan 2026"},
            ],
          ),
        ],
        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