Red de conocimiento informático - Material del sitio web - Crear código fuente PDF en línea

Crear código fuente PDF en línea

Agregue el componente flutter_pdfview:1.2.1.

La pantalla de clase pdf extiende el widget con estado {

Cadena final;

? Ruta final de la cadena;

? título de cadena final;

? PDFScreen({Clave clave, esta.url, esta.ruta, este.título}): super(Clave: Clave);

? _ pdfscreenstate createstate()= gt; _ pdf screenstate();

}

clase _ pdfscrenstateextiende el estado con WidgetsBindingObserver {

finalizer_controller=

Completo();

? int páginas = 0;

? intcurrentPage = 0;

? boolisReady = false

? StringerrorMessage = "";

? @portada

? Widgetbuild(contexto BuildContext){

return scaffold(

appBar: AppBar(

elevación: 0,

principal: nuevo botón de icono (

Icono: Image.asset(

Utils.getImgPath('icon_back '),

Ancho: 18,

Alto: 36,

? onPressed: () {

pop();

},

),

Título central: Sí,

Título: Texto (

widget.title,

? Estilo: TextStyle(fontSize: 17.0),

),

? Texto: Pila (

Niños: [

Posicionado (

altura: consulta de medios . de( contexto). Subproyecto: PDFView(

filePath: widget.path,

enableSwipe: True,

swipeHorizontal: True,

Espaciado automático: False,

pageFling: Verdadero,

pageSnap: Sí,

defaultPage: currentPage

fitPolicy: FitPolicy.

Ambos,

Evitar la navegación:

falso, //Si se establece en verdadero, maneja los enlaces en flutter

onRender: (_pages) {

setState(() {

páginas = _ páginas

isReady = true

?});

},

onError: (error){

setState(() {

mensaje de error = error . tostring();

> });

? print(error . tostring());

},

onPageError: (página, error){

setState(() {

mensaje de error = '$página:${error .tostring()}';

});

? print(' $página: $ { error . tostring()} ');

},

onview creado: (controlador de vista pdf controlador de vista pdf){

_ controlador .complete(controlador de vista pdf);

},

onLinkHandler: (cadena uri) {

print(' ir a uri: $ uri ');

},

onPageChanged: (int página, int total) {

print('Cambio de página: $ página/$ total ');

? setState(() {

currentPage = página

?});

},

? ),

? ),

? Posicionado (

Abajo: 0,

? alto: Utils.getHeightSize(80, contexto),

? ancho: consulta de medios. de (contexto). tamaño . ancho,

? sub: contenedor(

// padding: EdgeInsets.only(izquierda: 10.0, derecha: 10.0, arriba: 10.0, abajo: 10.0), < / p>

Decoración: BoxDecoration(

Color: color. blanco,

?border: borde. todo(color: colores de la aplicación. tono Gary),

?boxShadow: [

//Referencia:/video/6443

BoxShadow(

Color: AppColors.shadeGary,

desplazamiento: Desplazamiento(0.0, 0.0),

Radio de desenfoque: 3.0,

Radio de difusión: 0.0),

],

),

Niños: pila(

Niños: [

fila(

mainAxisSize: MainAxisSize.min,

?Niños: [

Contenedor(),<

/p>

Expandir(child:SizeBox()),

Contenedor(

Alto: 42.0,

?ancho: Utils.getWidthSize( 90 , contexto),

? margen: EdgeInsets.only (derecha: 20.0, abajo: 5.0),

? Decoración: BoxDecoration (// línea de borde

borderRadius: borderRadius . circular(21.0),? //Esquinas redondeadas

Degradado: degradado lineal (

Color: [color(0xFF5FD27A), color(0xFF3FAF6F)],

p>

),

? child: TextButton(

Estilo: ButtonStyle(

color de superposición: materialstateproperty . all(colors . transparent),

? color de primer plano: materialstateproperty . resolver con(

(estado){

if(Estados. contiene (estado del material. presionado)){

//Color al presionar

Devolver colores.transparent

?}

//El estado predeterminado es gris

. ? ReturnColors.transparent

},

?),

Niños: texto(

traducciones globales . texto(" msg _ descargar ").

? Estilo: TextStyle(Color:Colors.white),

),

onPressed: () {

launchPdfURL(widget . URL

);

},

? ),

),

? ],

),

? ],

),

? )),

? errorMessage.isEmpty

! isReady

centro(

niño: indicador de progresión circular(),

?)

: contenedor()

: Centro(

niño: Texto(mensaje de error),

?)

],

? ),

? //botón de acción flotante: Future Builder(

//?Future: _controller.future,

//?Builder: (contexto, instantánea asíncrona){

// if (snapshot.hasData) {

// ?return botón de acción flotante extendido(

// label: Text("Ir a ${pages ~/ 2 } ",

// onPressed: () async {

// ?esperar instantánea . datos . configurar página(páginas ~/2);

/ / },

// ?);

// }

//

//devolver contenedor();< / p>

//?},

// ),

);

? }

launchPdfURL(String url) {

Launch(URL);

? }

}