It is a custom widget to preview any pdf
// Automatic FlutterFlow imports
import '/flutter_flow/flutter_flow_theme.dart';
import '/flutter_flow/flutter_flow_util.dart';
import '/custom_code/widgets/index.dart'; // Imports other custom widgets
import '/flutter_flow/custom_functions.dart'; // Imports custom functions
import 'package:flutter/material.dart';
// Begin custom widget code
// DO NOT REMOVE OR MODIFY THE CODE ABOVE!
import 'package:syncfusion_flutter_pdfviewer/pdfviewer.dart';
import 'package:file_picker/file_picker.dart';
import 'dart:io';
class Finalpdf1 extends StatefulWidget {
const Finalpdf1({
Key? key,
this.width,
this.height,
}) : super(key: key);
final double? width;
final double? height;
@override
_Finalpdf1State createState() => _Finalpdf1State();
}
class _Finalpdf1State extends State<Finalpdf1> {
String? ruta; // atributo para guardar la ruta del archivo PDF
@override
Widget build(BuildContext context) {
return Container(
width: widget.width,
height: widget.height,
child: Column(
children: [
ElevatedButton(
onPressed: () async {
// usa este botón para abrir la ventana de diálogo
FilePickerResult? result = await FilePicker.platform.pickFiles(
type: FileType
.custom, // especifica el tipo de archivo que quieres seleccionar
allowedExtensions: [
'pdf'
], // especifica las extensiones permitidas
);
if (result != null) {
// si el usuario seleccionó un archivo, guarda la ruta en el atributo
ruta = result.files.single.path;
setState(() {}); // actualiza el estado del widget
}
},
child: Text('Seleccionar PDF'),
),
Expanded(
child: ruta == null // comprueba si el valor es nulo
? Text(
'No se ha seleccionado ningún PDF') // muestra un mensaje de error
: SfPdfViewer.file(
// usa este widget para mostrar el PDF desde un archivo
File(
ruta!), // usa el operador ! para indicar que el valor no es nulo
),
),
],
),
);
}
}