Skip to content

Instantly share code, notes, and snippets.

View tirth-aubergine's full-sized avatar
🎯
Focusing

Tirth Patel tirth-aubergine

🎯
Focusing
View GitHub Profile
@tirth-aubergine
tirth-aubergine / pubspec.yaml
Created December 5, 2019 06:10
pubspec.yaml
dependencies:
flutter:
sdk: flutter
cupertino_icons: ^0.1.2
spreadsheet_decoder: # parsing xlsx files
path_provider: # reading/writing files in application document directory
file_picker: # using local files from device
pdf_viewer_plugin: # viewing pdf files
pdf: # generating pdf file
permission_handler: # handling runtime permissions
@tirth-aubergine
tirth-aubergine / home.dart
Created December 5, 2019 07:12
HomeScreen - FAB
FloatingActionButton(
onPressed: () async {
homeProvider.xlsxFilePath = await FilePicker.getFilePath(
type: FileType.CUSTOM,
fileExtension: 'xlsx',
);
},
child: Icon(Icons.attach_file),
)
@tirth-aubergine
tirth-aubergine / home.dart
Last active December 5, 2019 08:34
HomeScreen - Body Initial
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:spreadsheet_decoder/spreadsheet_decoder.dart';
import 'package:file_picker/file_picker.dart';
import 'package:certificate_generator/providers/home.dart';
@tirth-aubergine
tirth-aubergine / view.dart
Created December 5, 2019 08:38
ViewerScreen
import 'package:flutter/material.dart';
import 'package:pdf_viewer_plugin/pdf_viewer_plugin.dart';
class ViewerScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
Map<String, dynamic> view = ModalRoute.of(context).settings.arguments;
return Scaffold(
appBar: AppBar(
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:permission_handler/permission_handler.dart';
import 'package:certificate_generator/providers/home.dart';
import 'package:certificate_generator/screens/home.dart';
import 'package:certificate_generator/screens/result.dart';
import 'package:certificate_generator/screens/viewer.dart';
@tirth-aubergine
tirth-aubergine / result.dart
Created December 5, 2019 09:40
ResultScreen - Initial
Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: <Widget>[
FlatButton(
onPressed: () {
// Download
},
child: Icon(Icons.file_download),
),
FlatButton(
@tirth-aubergine
tirth-aubergine / result.dart
Last active December 6, 2019 07:13
Result Screen - Share
FlatButton(
onPressed: () async {
String downloadPath =
await getApplicationDocumentsDirectoryPath();
if (File('$downloadPath/$name.pdf').existsSync()) {
ShareExtend.share(
File('$downloadPath/$name.pdf').path, 'file');
} else {
Scaffold.of(context).showSnackBar(
SnackBar(
@tirth-aubergine
tirth-aubergine / result.dart
Last active December 6, 2019 07:16
ResultScreen - View
FlatButton(
onPressed: () async {
String downloadPath =
await getApplicationDocumentsDirectoryPath();
if (File('$downloadPath/$name.pdf').existsSync()) {
Navigator.pushNamed(context, '/viewer',
arguments: {'view': '$downloadPath/$name.pdf'});
} else {
Scaffold.of(context).showSnackBar(
SnackBar(
@tirth-aubergine
tirth-aubergine / commons.dart
Last active December 6, 2019 07:18
Common Utils - Pdf Generator Method
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:pdf/pdf.dart';
import 'package:pdf/widgets.dart' as pdf;
import 'package:printing/printing.dart';
import 'package:path_provider/path_provider.dart';
Future<void> pdfGenerator(name) async {
@tirth-aubergine
tirth-aubergine / result.dart
Last active December 6, 2019 07:21
ResultScreen - Download
FlatButton(
onPressed: () {
pdfGenerator(name);
Scaffold.of(context).showSnackBar(
SnackBar(
content: Text('$name.pdf downloaded'),
action: SnackBarAction(
label: 'View',
onPressed: () async {
String downloadPath =