examples.dart 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. /*
  2. * Copyright © 2014-2024 PDF Technologies, Inc. All Rights Reserved.
  3. *
  4. * THIS SOURCE CODE AND ANY ACCOMPANYING DOCUMENTATION ARE PROTECTED BY INTERNATIONAL COPYRIGHT LAW
  5. * AND MAY NOT BE RESOLD OR REDISTRIBUTED. USAGE IS BOUND TO THE ComPDFKit LICENSE AGREEMENT.
  6. * UNAUTHORIZED REPRODUCTION OR DISTRIBUTION IS SUBJECT TO CIVIL AND CRIMINAL PENALTIES.
  7. * This notice may not be removed from this file.
  8. *
  9. */
  10. import 'dart:io';
  11. import 'package:compdfkit_flutter/compdfkit.dart';
  12. import 'package:compdfkit_flutter/cpdf_configuration.dart';
  13. import 'package:compdfkit_flutter_example/cpdf_reader_widget_dark_theme_example.dart';
  14. import 'package:compdfkit_flutter_example/utils/file_util.dart';
  15. import 'package:file_picker/file_picker.dart';
  16. import 'package:flutter/material.dart';
  17. import 'cpdf_reader_widget_example.dart';
  18. import 'widgets/cpdf_fun_item.dart';
  19. const String _documentPath = 'pdfs/PDF_Document.pdf';
  20. List<Widget> examples(BuildContext context) => [
  21. Text(
  22. 'Modal View Examples',
  23. style: Theme.of(context).textTheme.bodyMedium,
  24. ),
  25. FeatureItem(
  26. title: 'Basic Example',
  27. description: 'Open sample pdf document',
  28. onTap: () => showDocument(context)),
  29. FeatureItem(
  30. title: 'Select External Files',
  31. description: 'Select pdf document from system file manager',
  32. onTap: () => pickDocument()),
  33. FeatureItem(
  34. title: 'Show CPDFReaderWidget',
  35. description: 'Display PDF view in flutter widget',
  36. onTap: () => showCPDFReaderWidget(context)),
  37. // if (Platform.isAndroid) ...[
  38. // FeatureItem(title: 'Dark Theme',
  39. // description: 'Opens a document in night mode with a custom dark theme',
  40. // onTap: () => showDarkThemeCPDFReaderWidget(context))
  41. // ]
  42. ];
  43. void showDocument(context) async {
  44. File document = await extractAsset(context, _documentPath);
  45. ComPDFKit.openDocument(document.path,
  46. password: '', configuration: CPDFConfiguration());
  47. }
  48. void pickDocument() async {
  49. FilePickerResult? result = await FilePicker.platform.pickFiles(
  50. type: FileType.custom,
  51. allowedExtensions: ['pdf'],
  52. );
  53. if (result != null) {
  54. ComPDFKit.openDocument(result.files.first.path!,
  55. password: '', configuration: CPDFConfiguration());
  56. }
  57. }
  58. void showCPDFReaderWidget(context) async {
  59. File document = await extractAsset(context, _documentPath, shouldOverwrite: false);
  60. goTo(CPDFReaderWidgetExample(documentPath: document.path), context);
  61. }
  62. void showDarkThemeCPDFReaderWidget(context) async {
  63. File document = await extractAsset(context, _documentPath, shouldOverwrite: false);
  64. goTo(CPDFDarkThemeExample(documentPath: document.path), context);
  65. }
  66. void goTo(Widget widget, BuildContext context) =>
  67. Navigator.push(context, MaterialPageRoute(builder: (context) {
  68. return widget;
  69. }));