David PHAM-VAN

Add file save and view to example application

# 2.0.3
* Add file save and view to example application
# 2.0.2
* Fix example application
... ...
... ... @@ -46,6 +46,18 @@ android {
// TODO: Add your own signing config for the release build.
// Signing with the debug keys for now, so `flutter run --release` works.
signingConfig signingConfigs.debug
minifyEnabled true
useProguard true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
ndk {
abiFilters 'armeabi-v7a'
}
}
debug {
minifyEnabled false
useProguard false
}
}
}
... ...
... ... @@ -249,6 +249,8 @@
inputPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh",
"${PODS_ROOT}/../.symlinks/flutter/ios/Flutter.framework",
"${BUILT_PRODUCTS_DIR}/flutter_full_pdf_viewer/flutter_full_pdf_viewer.framework",
"${BUILT_PRODUCTS_DIR}/path_provider/path_provider.framework",
"${BUILT_PRODUCTS_DIR}/printing/printing.framework",
);
name = "[CP] Embed Pods Frameworks";
... ... @@ -256,6 +258,8 @@
);
outputPaths = (
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Flutter.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/flutter_full_pdf_viewer.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/path_provider.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/printing.framework",
);
runOnlyForDeploymentPostprocessing = 0;
... ...
... ... @@ -5,12 +5,14 @@ import 'dart:ui' as ui;
import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
import 'package:path_provider/path_provider.dart';
import 'package:pdf/pdf.dart';
import 'package:pdf/widgets.dart' as pdf;
import 'package:printing/printing.dart';
import 'package:printing_example/document.dart';
import 'document.dart';
import 'viewer.dart';
void main() => runApp(MaterialApp(home: MyApp()));
... ... @@ -32,6 +34,19 @@ class MyAppState extends State<MyApp> {
(await generateDocument(format)).save());
}
Future<void> _saveAsFile() async {
Directory appDocDir = await getApplicationDocumentsDirectory();
String appDocPath = appDocDir.path;
File file = File(appDocPath + '/' + 'document.pdf');
print('Save as file ${file.path} ...');
await file.writeAsBytes((await generateDocument(PdfPageFormat.a4)).save());
Navigator.push<dynamic>(
context,
MaterialPageRoute<dynamic>(
builder: (BuildContext context) => PdfViewer(file: file)),
);
}
Future<void> _sharePdf() async {
print('Share ...');
final pdf.Document document = await generateDocument(PdfPageFormat.a4);
... ... @@ -117,6 +132,8 @@ class MyAppState extends State<MyApp> {
RaisedButton(
child: const Text('Print Screenshot'),
onPressed: _printScreen),
RaisedButton(
child: const Text('Save to file'), onPressed: _saveAsFile),
],
),
),
... ...
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:flutter_full_pdf_viewer/flutter_full_pdf_viewer.dart';
import 'package:flutter_full_pdf_viewer/full_pdf_viewer_plugin.dart';
import 'package:flutter_full_pdf_viewer/full_pdf_viewer_scaffold.dart';
class PdfViewer extends StatelessWidget {
const PdfViewer({this.file});
final File file;
@override
Widget build(BuildContext context) {
return PDFViewerScaffold(
appBar: AppBar(
title: const Text('Document'),
),
path: file.path);
}
}
... ...
... ... @@ -10,8 +10,9 @@ dependencies:
flutter:
sdk: flutter
printing:
cupertino_icons: ^0.1.2
path_provider:
flutter_full_pdf_viewer:
cupertino_icons:
dev_dependencies:
flutter_test:
... ...
... ... @@ -4,7 +4,7 @@ description: Plugin that allows Flutter apps to generate and print documents to
homepage: https://github.com/DavBfr/dart_pdf/tree/master/printing
repository: https://github.com/DavBfr/dart_pdf
issue_tracker: https://github.com/DavBfr/dart_pdf/issues
version: 2.0.2
version: 2.0.3
environment:
sdk: ">=2.1.0 <3.0.0"
... ...