pdf_viewer.dart 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. // import 'package:flutter/material.dart';
  2. // import 'package:flutter_pdfview/flutter_pdfview.dart';
  3. // import 'package:permission_handler/permission_handler.dart';
  4. // import 'package:open_file/open_file.dart';
  5. // import 'package:path_provider/path_provider.dart';
  6. // import 'dart:io';
  7. // class PdfViewerPage extends StatefulWidget {
  8. // final String filePath;
  9. // final String fileName;
  10. // const PdfViewerPage(
  11. // {Key? key, required this.filePath, required this.fileName})
  12. // : super(key: key);
  13. // @override
  14. // _PdfViewerPageState createState() => _PdfViewerPageState();
  15. // }
  16. // class _PdfViewerPageState extends State<PdfViewerPage> {
  17. // late PDFViewController _pdfViewController;
  18. // int? pages;
  19. // int? currentPage;
  20. // bool isReady = false;
  21. // String errorMessage = '';
  22. // @override
  23. // Widget build(BuildContext context) {
  24. // return Scaffold(
  25. // appBar: AppBar(
  26. // title: const Text("Visualizador de PDF"),
  27. // actions: [
  28. // IconButton(
  29. // icon: Icon(Icons.download),
  30. // onPressed: _downloadPdf,
  31. // ),
  32. // ],
  33. // ),
  34. // body: Stack(
  35. // children: <Widget>[
  36. // PDFView(
  37. // filePath: widget.filePath,
  38. // enableSwipe: true,
  39. // swipeHorizontal: true,
  40. // autoSpacing: false,
  41. // pageFling: false,
  42. // onRender: (_pages) {
  43. // setState(() {
  44. // pages = _pages;
  45. // isReady = true;
  46. // });
  47. // },
  48. // onError: (error) {
  49. // setState(() {
  50. // errorMessage = error.toString();
  51. // });
  52. // print(error.toString());
  53. // },
  54. // onPageError: (page, error) {
  55. // setState(() {
  56. // errorMessage = '$page: ${error.toString()}';
  57. // });
  58. // print('$page: ${error.toString()}');
  59. // },
  60. // onViewCreated: (PDFViewController pdfViewController) {
  61. // _pdfViewController = pdfViewController;
  62. // },
  63. // onPageChanged: (int? page, int? total) {
  64. // print('page change: $page/$total');
  65. // setState(() {
  66. // currentPage = page;
  67. // });
  68. // },
  69. // ),
  70. // errorMessage.isEmpty
  71. // ? !isReady
  72. // ? Center(
  73. // child: CircularProgressIndicator(),
  74. // )
  75. // : Container()
  76. // : Center(
  77. // child: Text(errorMessage),
  78. // )
  79. // ],
  80. // ),
  81. // );
  82. // }
  83. // Future<void> _downloadPdf() async {
  84. // try {
  85. // if (await Permission.storage.request().isGranted) {
  86. // final directory = await getExternalStorageDirectory();
  87. // if (directory != null) {
  88. // final filePath = '${directory.path}/${widget.fileName}';
  89. // final file = File(filePath);
  90. // await file.writeAsBytes(await File(widget.filePath).readAsBytes());
  91. // ScaffoldMessenger.of(context).showSnackBar(
  92. // SnackBar(content: Text('Archivo guardado en $filePath')),
  93. // );
  94. // OpenFile.open(filePath);
  95. // }
  96. // } else {
  97. // ScaffoldMessenger.of(context).showSnackBar(
  98. // SnackBar(content: Text('Permisos de almacenamiento denegados')),
  99. // );
  100. // }
  101. // } catch (e) {
  102. // ScaffoldMessenger.of(context).showSnackBar(
  103. // SnackBar(content: Text('Error al descargar el archivo: $e')),
  104. // );
  105. // }
  106. // }
  107. // }