🙂 İNSANLARIN EN HAYIRLISI INSANLARA FAYDALI OLANDIR 🙂

Ramazan HABER / FLUTTER / pdf viewer 1

1-) FLUTTER - pdf viewer 1

 

kaynak : https://youtu.be/8hiL2GwF9pc

kaynak1 : https://github.com/muhammedessa/Flutter-tutorial-files/blob/main/projectwidget27/lib/main.dart

 

 

kütüphane : https://pub.dev/packages/syncfusion_flutter_pdfviewer

 

flutter pub add syncfusion_flutter_pdfviewer

flutter pub add syncfusion_flutter_core

 

 

import 'package:flutter/material.dart';
import 'package:syncfusion_flutter_pdfviewer/pdfviewer.dart';

class PdfViewer1 extends StatefulWidget {
  
String tittle ="Anasayfa";
   
PdfViewer1({super.key,required this.tittle});

  
@override
  
State<PdfViewer1> createState() => _PdfViewer1State();
}

class _PdfViewer1State extends State<PdfViewer1> {

  
bool _isloading = true;
  
final GlobalKey<SfPdfViewerState> _pdfViewerKey = GlobalKey();

  
void _loadFile() async{
    
_pdfViewerKey.currentState?.openBookmarkView();
    setState(() {
      
_isloading = false;
    });
  }

  
@override
  
void initState() {
    
super.initState();
    _loadFile();
  }

  
@override
  
Widget build(BuildContext context) {
    
return Scaffold(
      appBar:
AppBar(

        title:
Text(widget.tittle),
      ),
      
// body: _isloading? const Center( child: CircularProgressIndicator(),)
      //     : SfPdfViewer.asset( 'assets/laplace.pdf',
      //   key: _pdfViewerKey,
      // ),

      
body: _isloading? const Center( child: CircularProgressIndicator(),)
          :
SfPdfViewer.network( 'https://web.stanford.edu/~boyd/ee102/laplace.pdf',
        key:
_pdfViewerKey,
      ),

    );
  }
}

 

 

 

 

 

 

 

 

2- pdf viewer gelişmiş (iptal ve onay var)

 

kullanımı

 

Navigator.of(context).push(
    
MaterialPageRoute(
        builder: (context) =>
            
PdfViewer1(
              tittle:
"KVKK",
              link:
                  
'https://web.stanford.edu/~boyd/ee102/laplace.pdf',
              cancelClick: () {
                print(
"cancel");
              },
              okeyClick: () {
                print(
"okey");
              },
            )));

 

 

kod

 

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
import 'package:get/get.dart';
import 'package:syncfusion_flutter_core/theme.dart';
import 'package:syncfusion_flutter_pdfviewer/pdfviewer.dart';

class PdfViewer1 extends StatefulWidget {
  
final Function cancelClick;
  
final Function okeyClick;
  
String tittle = "Anasayfa";
  
String link =
      
"https://drive.google.com/uc?export=download&id=1BCoch1LQU9w_i6h8sqYFRVN-39OknQe_";

  
PdfViewer1({super.key, required this.tittle, required this.link, required this.cancelClick, required this.okeyClick});

  
@override
  
State<PdfViewer1> createState() => _PdfViewer1State();
}

class _PdfViewer1State extends State<PdfViewer1> {
  
bool _isloading = true;
  
final GlobalKey<SfPdfViewerState> _pdfViewerKey = GlobalKey();

  
void _loadFile() async {
    
_pdfViewerKey.currentState?.openBookmarkView();
    setState(() {
      
_isloading = false;
    });
  }

  
@override
  
void initState() {
    
super.initState();
    _loadFile();
  }

  
final PdfViewerController _pdfViewerController = PdfViewerController();

  
@override
  
Widget build(BuildContext context) {
    
return SafeArea(
      child:
Scaffold(
        appBar:
AppBar(
          title:
Text(widget.tittle),
        ),
        
// body: _isloading? const Center( child: CircularProgressIndicator(),)
        //     : SfPdfViewer.asset( 'assets/laplace.pdf',
        //   key: _pdfViewerKey,
        // ),

        
body: Stack(
          children: [
            
_isloading
                
? Center(child: CircularProgressIndicator())
                :
SfPdfViewerTheme(
                    data:
SfPdfViewerThemeData(
                      backgroundColor:
Colors.white,
                    ),
                    child:
Column(
                      children: [
                        
Expanded(
                          child:
SfPdfViewer.network(
                            
widget.link,
                            key:
_pdfViewerKey,
                            controller:
_pdfViewerController,
                            onDocumentLoaded:
                                (
PdfDocumentLoadedDetails details) {
                              
// Sayfa yüklendikten sonra 2 saniye bekleyip padding'i ayarla
                              
Future.delayed(Duration(seconds: 2), () {});
                            },
                          ),
                        ),
                        
Container(
                          padding:
                              
EdgeInsets.only(left: 20, right: 20, bottom: 10),
                          color:
Colors.transparent,
                          child:
Row(
                            mainAxisAlignment:
MainAxisAlignment.spaceBetween,
                            children: [
                              
Expanded(
                                flex:
1,
                                child:
ElevatedButton(
                                  onPressed: () {
                                    
widget.cancelClick();
                                    
Navigator.pop(context);
                                  },
                                  style:
ElevatedButton.styleFrom(
                                    backgroundColor:
Colors.red,
                                    padding:
                                        
EdgeInsets.symmetric(vertical: 15.0),
                                  ),
                                  child:
Text('İptal'),
                                ),
                              ),
                              
SizedBox(width: 16), // Boşluk ekledik
                              
Expanded(
                                flex:
3,
                                child:
ElevatedButton(
                                  onPressed: () {
                                    
widget.okeyClick();
                                    
Navigator.pop(context);
                                  },
                                  style:
ElevatedButton.styleFrom(
                                    backgroundColor:
Colors.green,
                                    padding:
                                        
EdgeInsets.symmetric(vertical: 15.0),
                                  ),
                                  child:
Text('Onayla'),
                                ),
                              ),
                            ],
                          ),
                        ),
                      ],
                    ),
                  ),
          ],
        ),
      ),
    );
  }
}

 

 

 

EKRAN GÖRÜNTÜSÜ

 

 2024 Mart 13 Çarşamba
 391