import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart' show rootBundle; import 'package:flutter_pdfview/flutter_pdfview.dart'; import 'package:path_provider/path_provider.dart'; void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title: 'PDF Viewer Example', theme: ThemeData( primarySwatch: Colors.blue, ), home: PDFViewerPage(), ); } } class PDFViewerPage extends StatefulWidget { @override _PDFViewerPageState createState() => _PDFViewerPageState(); } class _PDFViewerPageState extends State { String? pdfPath; @override void initState() { super.initState(); _loadPDF(); } Future _loadPDF() async { final path = await getLocalPDFPath(); setState(() { pdfPath = path; }); } Future getLocalPDFPath() async { final dir = await getTemporaryDirectory(); final filePath = '${dir.path}/sample.pdf'; if (!File(filePath).existsSync()) { final byteData = await rootBundle.load('assets/sample.pdf'); final file = File(filePath); await file.writeAsBytes(byteData.buffer.asUint8List()); } return filePath; } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text("PDF Viewer"), ), body: pdfPath == null ? Center(child: CircularProgressIndicator()) : PDFView( filePath: pdfPath!, enableSwipe: true, swipeHorizontal: true, autoSpacing: false, pageFling: false, onRender: (_pages) { print("PDF Rendered with $_pages pages"); }, onError: (error) { print("Error while rendering PDF: $error"); }, onPageError: (page, error) { print("Error on page $page: $error"); }, onViewCreated: (PDFViewController pdfViewController) { print("PDF View Controller initialized"); }, ), ); } }