pdf_page.dart 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. /// Copyright © 2014-2024 PDF Technologies, Inc. All Rights Reserved.
  2. ///
  3. /// THIS SOURCE CODE AND ANY ACCOMPANYING DOCUMENTATION ARE PROTECTED BY INTERNATIONAL COPYRIGHT LAW
  4. /// AND MAY NOT BE RESOLD OR REDISTRIBUTED. USAGE IS BOUND TO THE ComPDFKit LICENSE AGREEMENT.
  5. /// UNAUTHORIZED REPRODUCTION OR DISTRIBUTION IS SUBJECT TO CIVIL AND CRIMINAL PENALTIES.
  6. /// This notice may not be removed from this file.
  7. ///
  8. import 'dart:io';
  9. import 'package:compdfkit_flutter/cpdf_configuration.dart';
  10. import 'package:compdfkit_flutter/widgets/cpdf_reader_widget.dart';
  11. import 'package:flutter/material.dart';
  12. import 'package:flutter_gen/gen_l10n/app_localizations.dart';
  13. import '../../utils/file_util.dart';
  14. class PDFDocumentPage extends StatefulWidget {
  15. const PDFDocumentPage({super.key});
  16. @override
  17. State<PDFDocumentPage> createState() => _PDFDocumentPageState();
  18. }
  19. class _PDFDocumentPageState extends State<PDFDocumentPage> {
  20. @override
  21. Widget build(BuildContext context) {
  22. return Scaffold(
  23. appBar: AppBar(title: const Text('CPDFReaderWidget'),),
  24. body: SafeArea(
  25. child: Column(
  26. children: [
  27. Expanded(
  28. child: FutureBuilder(
  29. future: getPDFPath(),
  30. builder: (context, snapShot) {
  31. if (snapShot.connectionState == ConnectionState.done &&
  32. snapShot.hasData) {
  33. String document = snapShot.data!;
  34. return CPDFReaderWidget(
  35. document: document,
  36. configuration: CPDFConfiguration());
  37. } else {
  38. return Center(
  39. child: Column(
  40. children: [
  41. const CircularProgressIndicator(),
  42. Text(AppLocalizations.of(context)!.loading)
  43. ],
  44. ),
  45. );
  46. }
  47. }))
  48. ],
  49. )));
  50. }
  51. Future<String> getPDFPath() async {
  52. File document = await extractAsset(context, 'pdfs/PDF_Document.pdf');
  53. return document.path;
  54. }
  55. }