You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hello im having some problems with the file i have this logic in screen 1 ...
Future goToPdfCreator(BuildContext context,
UserModelString userModelString) async {
final pdf = pw.Document();
Directory? docDirectory = await getExternalStorageDirectory();
if (docDirectory != null) {
var path = docDirectory.path;
var file = File('$path/laboralCertificate.pdf');
await file.writeAsBytes(await pdf.save());
Navigator.of(context).push(MaterialPageRoute(
builder: (context) =>
PdfCreator(
userModelString: userModelString, path: path,)));
}
}
class PdfCreator extends StatefulWidget {
PdfCreator(
{Key? key,
required this.userModelString,
required this.path
})
: super(key: key);
final String path;
final UserModelString userModelString;
@OverRide
State createState() => _PdfCreatorState();
}
class _PdfCreatorState extends State with WidgetsBindingObserver {
final pdf = pw.Document();
var file;
final Completer _controller =
Completer();
int? pages = 0;
int? currentPage = 0;
bool isReady = false;
String errorMessage = '';
writeOnPdf() {
pdf.addPage(
pw.Page(
pageFormat: PdfPageFormat.letter,
build: (pw.Context context) {
return pw.Column(
crossAxisAlignment: pw.CrossAxisAlignment.center,
children: [
pw.Column(
crossAxisAlignment: pw.CrossAxisAlignment.start,
children: [
pw.Text(widget.userModelString.companyName),
pw.Divider(height: 20),
pw.Text(widget.userModelString.companyNumber),
pw.Divider(height: 20),
pw.Text('Certificado'),
pw.Divider(height: 20),
pw.Column(
crossAxisAlignment: pw.CrossAxisAlignment.start,
children: [
pw.Text(
'Por medio de la presente certifico que el señor'
'${widget.userModelString.name},identificado con Cédula de Ciudadania No. ${widget.userModelString.userId}, trabaja actualmente en la empresa'
'${widget.userModelString.companyName} con NIT: ${widget.userModelString.companyNumber}, desde ${widget.userModelString.initialDate}, con un contrato a termino indefinido'
'y bajo el cargo de ${widget.userModelString.rol}. Con horario laboral de 9 horas diarias de lunes a viernes y un total de 45 horas'
'semanales. Percibiento un Sueldo Basico mensual de ${widget.userModelString.salary} ${widget.userModelString.currency}.'),
pw.Divider(height: 20),
pw.Text(
'Se expide el presente certificado a solicitud del interesado en la fecha ${widget.userModelString.endDate}'),
pw.Divider(height: 20),
pw.Text(
'Para confirmar esta certificación, comuniquese enviando el presente certificado al correo'
'electronico Pjourney-COLPE@globant.com para validacion.'),
pw.Divider(height: 20),
pw.Divider(height: 20),
pw.Text('Yullo'),
pw.Text('Pealyst'),
pw.Text('1'),
pw.Text('yul@glob.com'),
])
])
]);
},
),
);
}
Hello im having some problems with the file i have this logic in screen 1 ...
Future goToPdfCreator(BuildContext context,
UserModelString userModelString) async {
final pdf = pw.Document();
Directory? docDirectory = await getExternalStorageDirectory();
if (docDirectory != null) {
var path = docDirectory.path;
var file = File('$path/laboralCertificate.pdf');
await file.writeAsBytes(await pdf.save());
Navigator.of(context).push(MaterialPageRoute(
builder: (context) =>
PdfCreator(
userModelString: userModelString, path: path,)));
}
}
class 2 PdfCreator.....
import 'dart:async';
import 'dart:io';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_pdfview/flutter_pdfview.dart';
import 'package:lab_cert_globant/Model/user_dates_display.dart';
import 'package:path_provider/path_provider.dart';
import 'package:pdf/pdf.dart';
import 'package:pdf/widgets.dart' as pw;
class PdfCreator extends StatefulWidget {
PdfCreator(
{Key? key,
required this.userModelString,
required this.path
})
: super(key: key);
final String path;
final UserModelString userModelString;
@OverRide
State createState() => _PdfCreatorState();
}
class _PdfCreatorState extends State with WidgetsBindingObserver {
final pdf = pw.Document();
var file;
final Completer _controller =
Completer();
int? pages = 0;
int? currentPage = 0;
bool isReady = false;
String errorMessage = '';
writeOnPdf() {
pdf.addPage(
pw.Page(
pageFormat: PdfPageFormat.letter,
build: (pw.Context context) {
return pw.Column(
crossAxisAlignment: pw.CrossAxisAlignment.center,
children: [
pw.Column(
crossAxisAlignment: pw.CrossAxisAlignment.start,
children: [
pw.Text(widget.userModelString.companyName),
pw.Divider(height: 20),
pw.Text(widget.userModelString.companyNumber),
pw.Divider(height: 20),
pw.Text('Certificado'),
pw.Divider(height: 20),
pw.Column(
crossAxisAlignment: pw.CrossAxisAlignment.start,
children: [
pw.Text(
'Por medio de la presente certifico que el señor'
'${widget.userModelString.name},identificado con Cédula de Ciudadania No. ${widget.userModelString.userId}, trabaja actualmente en la empresa'
'${widget.userModelString.companyName} con NIT: ${widget.userModelString.companyNumber}, desde ${widget.userModelString.initialDate}, con un contrato a termino indefinido'
'y bajo el cargo de ${widget.userModelString.rol}. Con horario laboral de 9 horas diarias de lunes a viernes y un total de 45 horas'
'semanales. Percibiento un Sueldo Basico mensual de ${widget.userModelString.salary} ${widget.userModelString.currency}.'),
pw.Divider(height: 20),
pw.Text(
'Se expide el presente certificado a solicitud del interesado en la fecha ${widget.userModelString.endDate}'),
pw.Divider(height: 20),
pw.Text(
'Para confirmar esta certificación, comuniquese enviando el presente certificado al correo'
'electronico Pjourney-COLPE@globant.com para validacion.'),
pw.Divider(height: 20),
pw.Divider(height: 20),
pw.Text('Yullo'),
pw.Text('Pealyst'),
pw.Text('1'),
pw.Text('yul@glob.com'),
])
])
]);
},
),
);
}
Future savePdf() async {
Directory? docDirectory = await getExternalStorageDirectory();
if(docDirectory != null) {
var path = docDirectory.path;
file = File('$path/laboralCertificate.pdf');
await file.writeAsBytes(await pdf.save());
}
}
@OverRide
Widget build(BuildContext context) {
writeOnPdf();
return SafeArea(
child: Scaffold(
appBar: AppBar(title: Text('Save Pdf'),),
body: Stack(
children: [
PDFView(
filePath: widget.path,
enableSwipe: true,
swipeHorizontal: true,
autoSpacing: false,
pageFling: true,
pageSnap: true,
defaultPage: currentPage!,
fitPolicy: FitPolicy.BOTH,
preventLinkNavigation: true,
onRender: (_pages) {
setState(() {
pages = _pages;
isReady = true;
});
},
onError: (error) {
setState(() {
errorMessage = error.toString();
});
print(error.toString());
},
onPageError: (page, error) {
setState(() {
errorMessage = '$page: ${error.toString()}';
});
print('$page: ${error.toString()}');
},
onViewCreated: (PDFViewController pdfViewController) {
_controller.complete(pdfViewController);
},
onLinkHandler: (String? uri) {
print('goto uri: $uri');
},
onPageChanged: (int? page, int? total) {
print('page change: $page/$total');
setState(() {
currentPage = page;
});
},
),
errorMessage.isEmpty
? !isReady
? const Center(
child: CircularProgressIndicator(),
)
: Container()
: Center(
child: Text(errorMessage),
)
],
),
),
);
}
}
And i get the title of this issue printed on screen what seems to be wrong please help!.
The text was updated successfully, but these errors were encountered: