A flutter plugin for viewing PDF files in mobile app (Android & iOS)

Overview

PDF Viewer (JK)

A flutter plugin for viewing PDF files in mobile app (Android & iOS)

Pub.dev

    https://pub.dev/packages/pdf_viewer_jk

Github

    https://github.com/jawadsahil/pdf_viewer_jk/

This plugin is based on Cross PT flutter plugin pdf viewer. Upgrades by Damodar Lohani are also incorporated.

Installation

Add pdf_viewer_jk as a dependency in your pubspec.yaml file.

pdf_viewer_jk: any

Android

No permissions required. Uses application cache directory.

iOS

No permissions required.

How-to:

Load PDF

// Load from assets
PDFDocument doc = await PDFDocument.fromAsset('assets/test.pdf');

// Load from URL
PDFDocument doc = await PDFDocument.fromURL('http://www.africau.edu/images/default/sample.pdf');

// Load from file
File file  = File('...');
PDFDocument doc = await PDFDocument.fromFile(file);

Load pages

// Load specific page
PDFPage pageOne = await doc.get(page: _number);

Pre-built viewer

Use the pre-built PDF Viewer

@override
  Widget build(BuildContext context) {
    Scaffold(
        appBar: AppBar(
          title: Text('Example'),
        ),
        body: Center(
        child: _isLoading
            ? Center(child: CircularProgressIndicator())
            : PDFViewer(document: document)),
    );
  }
Comments
  • [!] No podspec found for `pdf_viewer_jk` in `Flutter/.symlinks/pdf_viewer_jk/ios`

    [!] No podspec found for `pdf_viewer_jk` in `Flutter/.symlinks/pdf_viewer_jk/ios`

    I'm getting this error when running project on iOS simulator. I tried run flutter clean but it's not working.

    ` CocoaPods' output: ↳ Preparing Analyzing dependencies

    Inspecting targets to integrate
      Using `ARCHS` setting to build architectures of target `Pods-Runner`: (``)
    
    Fetching external sources
    -> Fetching podspec for `Flutter` from `Flutter/engine`
    -> Fetching podspec for `FlutterPluginRegistrant` from `Flutter/FlutterPluginRegistrant`
    -> Fetching podspec for `contacts_service` from `Flutter/.symlinks/contacts_service/ios`
    -> Fetching podspec for `device_info` from `Flutter/.symlinks/device_info/ios`
    -> Fetching podspec for `fluttertoast` from `Flutter/.symlinks/fluttertoast/ios`
    -> Fetching podspec for `path_provider` from `Flutter/.symlinks/path_provider/ios`
    -> Fetching podspec for `path_provider_macos` from `Flutter/.symlinks/path_provider_macos/ios`
    -> Fetching podspec for `pdf_viewer_jk` from `Flutter/.symlinks/pdf_viewer_jk/ios`
    [!] No podspec found for `pdf_viewer_jk` in `Flutter/.symlinks/pdf_viewer_jk/ios`
    
    /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.8.4/lib/cocoapods/external_sources/path_source.rb:14:in `block in fetch'
    /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.8.4/lib/cocoapods/user_interface.rb:64:in `section'
    /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.8.4/lib/cocoapods/external_sources/path_source.rb:11:in `fetch'
    /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.8.4/lib/cocoapods/installer/analyzer.rb:901:in `fetch_external_source'
    /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.8.4/lib/cocoapods/installer/analyzer.rb:880:in `block (2 levels) in fetch_external_sources'
    /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.8.4/lib/cocoapods/installer/analyzer.rb:879:in `each'
    /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.8.4/lib/cocoapods/installer/analyzer.rb:879:in `block in fetch_external_sources'
    /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.8.4/lib/cocoapods/user_interface.rb:64:in `section'
    /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.8.4/lib/cocoapods/installer/analyzer.rb:878:in `fetch_external_sources'
    /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.8.4/lib/cocoapods/installer/analyzer.rb:117:in `analyze'
    /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.8.4/lib/cocoapods/installer.rb:410:in `analyze'
    /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.8.4/lib/cocoapods/installer.rb:234:in `block in resolve_dependencies'
    /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.8.4/lib/cocoapods/user_interface.rb:64:in `section'
    /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.8.4/lib/cocoapods/installer.rb:233:in `resolve_dependencies'
    /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.8.4/lib/cocoapods/installer.rb:156:in `install!'
    /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.8.4/lib/cocoapods/command/install.rb:52:in `run'
    /Library/Ruby/Gems/2.6.0/gems/claide-1.0.3/lib/claide/command.rb:334:in `run'
    /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.8.4/lib/cocoapods/command.rb:52:in `run'
    /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.8.4/bin/pod:55:in `<top (required)>'
    /usr/local/bin/pod:23:in `load'
    /usr/local/bin/pod:23:in `<main>'
    

    Error running pod install Error launching application on iPhone 11 Pro Max. `

    bug 
    opened by dochanhca 8
  • bug plugin not working

    bug plugin not working

    hi, i'm using this plugin and out of nowhere the plugin stopped working and gives this error:

    /opt/flutter/.pub-cache/hosted/pub.dartlang.org/pdf_viewer_jk-2.1.2/lib/src/document.dart:75:14: Error: The class 'File' is abstract and can't be instantiated. file = File("${dir.path}/file.pdf"); ^^^^ /opt/flutter/.pub-cache/hosted/pub.dartlang.org/pdf_viewer_jk-2.1.2/lib/src/document.dart:83:26: Error: Non-nullable variable 'file' must be assigned before it can be used. document._filePath = file.path; ^^^^ /opt/flutter/.pub-cache/hosted/pub.dartlang.org/pdf_viewer_jk-2.1.2/lib/src/document.dart:86:24: Error: Non-nullable variable 'file' must be assigned before it can be used. {'filePath': file.path, 'clearCacheDir': clearPreviewCache}); ^^^^

    edit: I also tested with the code that is in the github repository and gives the same problem

    bug 
    opened by maxTeste 6
  • Android 11

    Android 11

    W/System.err(19682): java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.Resources android.app.Activity.getResources()' on a null object reference
    W/System.err(19682): 	at pro.jawad.pdf_viewer_jk.PdfViewerJkPlugin.getPage(PdfViewerJkPlugin.java:168)
    W/System.err(19682): 	at pro.jawad.pdf_viewer_jk.PdfViewerJkPlugin.access$100(PdfViewerJkPlugin.java:29)
    W/System.err(19682): 	at pro.jawad.pdf_viewer_jk.PdfViewerJkPlugin$1.run(PdfViewerJkPlugin.java:70)
    W/System.err(19682): 	at android.os.Handler.handleCallback(Handler.java:938)
    W/System.err(19682): 	at android.os.Handler.dispatchMessage(Handler.java:99)
    W/System.err(19682): 	at android.os.Looper.loop(Looper.java:223)
    W/System.err(19682): 	at android.os.HandlerThread.run(HandlerThread.java:67)
    I/flutter (19682): ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
    I/flutter (19682): The following _CastError was thrown building NotificationListener<KeepAliveNotification>:
    I/flutter (19682): Null check operator used on a null value
    I/flutter (19682): 
    I/flutter (19682): The relevant error-causing widget was:
    I/flutter (19682):   PDFViewer
    I/flutter (19682):   file:///C:/Users/AndroidStudioProjects/byganet-flutter-app/lib/screens/pdf_viewer/pdf_viewer_screen.dart:66:17
    I/flutter (19682): 
    I/flutter (19682): When the exception was thrown, this was the stack:
    I/flutter (19682): #0      _PDFPageState._repaint (package:pdf_viewer_jk/src/page.dart:48:45)
    I/flutter (19682): #1      _PDFPageState.didChangeDependencies (package:pdf_viewer_jk/src/page.dart:36:5)
    I/flutter (19682): #2      StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4732:11)
    I/flutter (19682): #3      ComponentElement.mount (package:flutter/src/widgets/framework.dart:4548:5)
    I/flutter (19682): #4      Element.inflateWidget (package:flutter/src/widgets/framework.dart:3611:14)
    I/flutter (19682): #5      Element.updateChild (package:flutter/src/widgets/framework.dart:3360:20)
    I/flutter (19682): #6      SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6090:14)
    I/flutter (19682): #7      Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
    I/flutter (19682): #8      SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6090:14)
    I/flutter (19682): #9      Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
    I/flutter (19682): #10     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4599:16)
    I/flutter (19682): #11     Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5)
    I/flutter (19682): #12     StatelessElement.update (package:flutter/src/widgets/framework.dart:4655:5)
    I/flutter (19682): #13     Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
    I/flutter (19682): #14     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4599:16)
    I/flutter (19682): #15     Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5)
    I/flutter (19682): #16     ProxyElement.update (package:flutter/src/widgets/framework.dart:4922:5)
    I/flutter (19682): #17     Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
    I/flutter (19682): #18     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4599:16)
    I/flutter (19682): #19     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4746:11)
    I/flutter (19682): #20     Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5)
    I/flutter (19682): #21     StatefulElement.update (package:flutter/src/widgets/framework.dart:4778:5)
    I/flutter (19682): #22     Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
    I/flutter (19682): #23     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4599:16)
    I/flutter (19682): #24     Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5)
    I/flutter (19682): #25     StatelessElement.update (package:flutter/src/widgets/framework.dart:4655:5)
    I/flutter (19682): #26     Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
    I/flutter (19682): #27     SliverMultiBoxAdaptorElement.updateChild (package:flutter/src/widgets/sliver.dart:1241:37)
    I/flutter (19682): #28     SliverMultiBoxAdaptorElement.performRebuild.processElement (package:flutter/src/widgets/sliver.dart:1146:35)
    I/flutter (19682): #29     Iterable.forEach (dart:core/iterable.dart:257:30)
    I/flutter (19682): #30     SliverMultiBoxAdaptorElement.performRebuild (package:flutter/src/widgets/sliver.dart:1190:24)
    I/flutter (19682): #31     SliverMultiBoxAdaptorElement.update (package:flutter/src/widgets/sliver.dart:1124:7)
    I/flutter (19682): #32     Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
    I/flutter (19682): #33     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6090:14)
    I/flutter (19682): #34     Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
    I/flutter (19682): #35     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4599:16)
    I/flutter (19682): #36     Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5)
    I/flutter (19682): #37     StatelessElement.update (package:flutter/src/widgets/framework.dart:4655:5)
    I/flutter (19682): #38     Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
    I/flutter (19682): #39     RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:5596:32)
    I/flutter (19682): #40     MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6243:17)
    I/flutter (19682): #41     _ViewportElement.update (package:flutter/src/widgets/viewport.dart:228:11)
    I/flutter (19682): #42     Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
    I/flutter (19682): #43     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6090:14)
    I/flutter (19682): #44     Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
    I/flutter (19682): #45     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6090:14)
    I/flutter (19682): #46     Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
    I/flutter (19682): #47     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6090:14)
    I/flutter (19682): #48     Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
    I/flutter (19682): #49     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6090:14)
    I/flutter (19682): #50     Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
    I/flutter (19682): #51     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4599:16)
    I/flutter (19682): #52     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4746:11)
    I/flutter (19682): #53     Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5)
    I/flutter (19682): #54     StatefulElement.update (package:flutter/src/widgets/framework.dart:4778:5)
    I/flutter (19682): #55     Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
    I/flutter (19682): #56     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6090:14)
    I/flutter (19682): #57     Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
    I/flutter (19682): #58     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4599:16)
    I/flutter (19682): #59     Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5)
    I/flutter (19682): #60     ProxyElement.update (package:flutter/src/widgets/framework.dart:4922:5)
    I/flutter (19682): #61     Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
    I/flutter (19682): #62     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6090:14)
    I/flutter (19682): #63     Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
    I/flutter (19682): #64     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6090:14)
    I/flutter (19682): #65     Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
    I/flutter (19682): #66     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6090:14)
    I/flutter (19682): #67     Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
    I/flutter (19682): #68     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6090:14)
    I/flutter (19682): #69     Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
    I/flutter (19682): #70     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4599:16)
    I/flutter (19682): #71     Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5)
    I/flutter (19682): #72     StatelessElement.update (package:flutter/src/widgets/framework.dart:4655:5)
    I/flutter (19682): #73     Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
    I/flutter (19682): #74     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4599:16)
    I/flutter (19682): #75     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4746:11)
    I/flutter (19682): #76     Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5)
    I/flutter (19682): #77     StatefulElement.update (package:flutter/src/widgets/framework.dart:4778:5)
    I/flutter (19682): #78     Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
    I/flutter (19682): #79     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4599:16)
    I/flutter (19682): #80     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4746:11)
    I/flutter (19682): #81     Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5)
    I/flutter (19682): #82     StatefulElement.update (package:flutter/src/widgets/framework.dart:4778:5)
    I/flutter (19682): #83     Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
    I/flutter (19682): #84     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4599:16)
    I/flutter (19682): #85     Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5)
    I/flutter (19682): #86     StatelessElement.update (package:flutter/src/widgets/framework.dart:4655:5)
    I/flutter (19682): #87     Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
    I/flutter (19682): #88     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4599:16)
    I/flutter (19682): #89     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4746:11)
    I/flutter (19682): #90     Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5)
    I/flutter (19682): #91     StatefulElement.update (package:flutter/src/widgets/framework.dart:4778:5)
    I/flutter (19682): #92     Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
    I/flutter (19682): #93     RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:5596:32)
    I/flutter (19682): #94     MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6243:17)
    I/flutter (19682): #95     Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
    I/flutter (19682): #96     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4599:16)
    I/flutter (19682): #97     Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5)
    I/flutter (19682): #98     StatelessElement.update (package:flutter/src/widgets/framework.dart:4655:5)
    I/flutter (19682): #99     Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
    I/flutter (19682): #100    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4599:16)
    I/flutter (19682): #101    Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5)
    I/flutter (19682): #102    ProxyElement.update (package:flutter/src/widgets/framework.dart:4922:5)
    I/flutter (19682): #103    Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
    I/flutter (19682): #104    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4599:16)
    I/flutter (19682): #105    Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5)
    I/flutter (19682): #106    ProxyElement.update (package:flutter/src/widgets/framework.dart:4922:5)
    I/flutter (19682): #107    Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
    I/flutter (19682): #108    RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:5596:32)
    I/flutter (19682): #109    MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6243:17)
    I/flutter (19682): #110    Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
    I/flutter (19682): #111    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4599:16)
    I/flutter (19682): #112    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4746:11)
    I/flutter (19682): #113    Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5)
    I/flutter (19682): #114    StatefulElement.update (package:flutter/src/widgets/framework.dart:4778:5)
    I/flutter (19682): #115    Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
    I/flutter (19682): #116    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4599:16)
    I/flutter (19682): #117    Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5)
    I/flutter (19682): #118    ProxyElement.update (package:flutter/src/widgets/framework.dart:4922:5)
    I/flutter (19682): #119    Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
    I/flutter (19682): #120    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4599:16)
    I/flutter (19682): #121    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4746:11)
    I/flutter (19682): #122    Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5)
    I/flutter (19682): #123    StatefulElement.update (package:flutter/src/widgets/framework.dart:4778:5)
    I/flutter (19682): #124    Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
    I/flutter (19682): #125    SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6090:14)
    I/flutter (19682): #126    Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
    I/flutter (19682): #127    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4599:16)
    I/flutter (19682): #128    Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5)
    I/flutter (19682): #129    StatelessElement.update (package:flutter/src/widgets/framework.dart:4655:5)
    I/flutter (19682): #130    Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
    I/flutter (19682): #131    SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6090:14)
    I/flutter (19682): #132    Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
    I/flutter (19682): #133    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4599:16)
    I/flutter (19682): #134    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4746:11)
    I/flutter (19682): #135    Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5)
    I/flutter (19682): #136    StatefulElement.update (package:flutter/src/widgets/framework.dart:4778:5)
    I/flutter (19682): #137    Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
    I/flutter (19682): #138    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4599:16)
    I/flutter (19682): #139    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4746:11)
    W/System  (19682): A resource failed to call close. 
    I/chatty  (19682): uid=10154(net.byga.bygaapp) FinalizerDaemon identical 3 lines
    W/System  (19682): A resource failed to call close. 
    I/flutter (19682): #140    Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5)
    I/flutter (19682): #141    StatefulElement.update (package:flutter/src/widgets/framework.dart:4778:5)
    I/flutter (19682): #142    Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
    I/flutter (19682): #143    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4599:16)
    I/flutter (19682): #144    Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5)
    I/flutter (19682): #145    ProxyElement.update (package:flutter/src/widgets/framework.dart:4922:5)
    I/flutter (19682): #146    Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
    I/flutter (19682): #147    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4599:16)
    I/flutter (19682): #148    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4746:11)
    I/flutter (19682): #149    Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5)
    I/flutter (19682): #150    StatefulElement.update (package:flutter/src/widgets/framework.dart:4778:5)
    I/flutter (19682): #151    Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
    I/flutter (19682): #152    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4599:16)
    I/flutter (19682): #153    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4746:11)
    I/flutter (19682): #154    Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5)
    I/flutter (19682): #155    BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2582:33)
    I/flutter (19682): #156    WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:875:21)
    I/flutter (19682): #157    RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:328:5)
    I/flutter (19682): #158    SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1144:15)
    I/flutter (19682): #159    SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1082:9)
    I/flutter (19682): #160    SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:998:5)
    I/flutter (19682): #164    _invoke (dart:ui/hooks.dart:163:10)
    I/flutter (19682): #165    PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:259:5)
    I/flutter (19682): #166    _drawFrame (dart:ui/hooks.dart:126:31)
    I/flutter (19682): (elided 3 frames from dart:async)
    I/flutter (19682): 
    I/flutter (19682): ════════════════════════════════════════════════════════════════════════════════════════════════════
    I/flutter (19682): ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
    I/flutter (19682): The following assertion was thrown building SliverFillViewport:
    I/flutter (19682): 'package:flutter/src/rendering/sliver_multi_box_adaptor.dart': Failed assertion: line 258 pos 16:
    I/flutter (19682): 'child == null || indexOf(child) > index': is not true.
    
    bug 
    opened by xarmatura 4
  • Props showNavigation not working

    Props showNavigation not working

    showNavigation: false continues showing

    PDFViewer(
                  document: document,
                  showNavigation: false,
                  indicatorBackground: Colors.black,
                  showPicker: false,
                  indicatorText: Colors.white,
                )
    

    image

    opened by wesleytoshio 3
  • Attempt to invoke virtual method 'android.content.res.Resources android.app.Activity.getResources()' on a null object reference

    Attempt to invoke virtual method 'android.content.res.Resources android.app.Activity.getResources()' on a null object reference

    This is happening when run on android phone debugging in android studio on mac OS.

    Attempt to invoke virtual method 'android.content.res.Resources android.app.Activity.getResources()' on a null object reference

    I/System.out(29578): Attempt to invoke virtual method 'android.content.res.Resources android.app.Activity.getResources()' on a null object reference W/System.err(29578): java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.Resources android.app.Activity.getResources()' on a null object reference W/System.err(29578): at pro.jawad.pdf_viewer_jk.PdfViewerJkPlugin.getPage(PdfViewerJkPlugin.java:168) W/System.err(29578): at pro.jawad.pdf_viewer_jk.PdfViewerJkPlugin.access$100(PdfViewerJkPlugin.java:29) W/System.err(29578): at pro.jawad.pdf_viewer_jk.PdfViewerJkPlugin$1.run(PdfViewerJkPlugin.java:70) W/System.err(29578): at android.os.Handler.handleCallback(Handler.java:789) W/System.err(29578): at android.os.Handler.dispatchMessage(Handler.java:98) W/System.err(29578): at android.os.Looper.loop(Looper.java:164) W/System.err(29578): at android.os.HandlerThread.run(HandlerThread.java:65)

    [✓] Flutter (Channel stable, 2.2.1, on macOS 11.2.3 20D91 darwin-x64, locale en-AU) • Flutter version 2.2.1 at /Users/lli/flutter • Framework revision 02c026b03c (9 days ago), 2021-05-27 12:24:44 -0700 • Engine revision 0fdb562ac8 • Dart version 2.13.1

    [✓] Android toolchain - develop for Android devices (Android SDK version 29.0.3) • Android SDK at /Users/bravedev/Library/Android/sdk • Platform android-29, build-tools 29.0.3 • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264) • All Android licenses accepted.

    [✓] Xcode - develop for iOS and macOS • Xcode at /Applications/Xcode.app/Contents/Developer • Xcode 12.5, Build version 12E262 • CocoaPods version 1.10.1

    [✓] Chrome - develop for the web • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

    [✓] Android Studio (version 4.2) • Android Studio at /Applications/Android Studio.app/Contents • Flutter plugin can be installed from: 🔨 https://plugins.jetbrains.com/plugin/9212-flutter • Dart plugin can be installed from: 🔨 https://plugins.jetbrains.com/plugin/6351-dart • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264)

    [✓] VS Code (version 1.56.2) • VS Code at /Applications/Visual Studio Code.app/Contents • Flutter extension version 3.23.0

    [✓] Connected device (3 available) • Android SDK built for x86 (mobile) • emulator-5554 • android-x86 • Android 10 (API 29) (emulator) • macOS (desktop) • macos • darwin-x64 • macOS 11.2.3 20D91 darwin-x64 • Chrome (web) • chrome • web-javascript • Google Chrome 90.0.4430.212

    • No issues found!

    opened by cool-lei 2
  • bug on the plugin

    bug on the plugin

    hey, so i'm using this plugin and works fine, but when is showing the pdf there is on blue button on the bottom of the page, that shows a list of all pages. but when i click on the button i cant select a page or either exit from that list. is just form me?

    bug 
    opened by maxTeste 2
  • Dependencies

    Dependencies

    @jawadsahil Because every version of flutter_test from sdk depends on async 2.6.1 and pdf_viewer_jk >=2.1.3 depends on async ^2.7.0, flutter_test from sdk is incompatible with pdf_viewer_jk >=2.1.3.

    opened by xarmatura 1
  • App crashes when navigating rapidly between pages using the BottomBar navigation buttons

    App crashes when navigating rapidly between pages using the BottomBar navigation buttons

    The app crashes when I navigate rapidly using the BottomBar navigation buttons. It does not happen while scrolling between pages. Also, sometimes the first page of the PDF is rendered as a rectangular placeholder image. Here is my code:

    class PdfView extends StatefulWidget {
      final String? pdfUrl;
    
      PdfView({Key? key, this.pdfUrl}) : super(key: key);
    
      @override
      _PdfViewState createState() => _PdfViewState();
    }
    
    class _PdfViewState extends State<PdfView> {
      bool _isLoading = true;
    
      PDFDocument? document;
    
      String title = "Loading";
    
      @override
      void initState() {
        super.initState();
        loadDocument();
      }
    
      Future<void> loadDocument() async {
        setState(() {
          _isLoading = true;
          title = "Loading";
        });
        document = await PDFDocument.fromURL(widget.pdfUrl!);
        setState(() {
          _isLoading = false;
        });
      }
    
      @override
      Widget build(BuildContext context) {
        return SafeArea(
          child: Scaffold(
            body: _isLoading
                ? Center(
                    child: CircularProgressIndicator(
                        valueColor: AlwaysStoppedAnimation<Color>(Colors.blue[900]!)))
                : PDFViewer(
                    document: document!,
                    zoomSteps: 1,
                    scrollDirection: Axis.vertical,
                    showNavigation: true,
                    showPicker: false,
                  ),
          ),
        );
      }
    }
    
    opened by flutternoob 1
  • XMLHttpRequest error on fetching pdf from url

    XMLHttpRequest error on fetching pdf from url

    I have a functional android app in which I fetch pdf from url and display the fetched pdf in app, now I am trying to make the same work for web. I have put the code to fetch the pdf from url in try catch like this:

    if (kIsWeb) launch(pdfBillUrl);  
    try {
          PDFDocument pdfDocument = await PDFDocument.fromURL(pdfBillUrl);
          ...
        } catch (error) {
          showDialog(
            context: context,
            builder: (context) {
              return AlertDialog(
                content: Text(error.toString()),
                actions: <Widget>[
                  TextButton(
                    child: const Text('OK'),
                    onPressed: () => Navigator.of(context).pop(),
                  )
                ],
              );
            },
          );
        }
    

    I am able to successfully open the pdf in chrome by using the url_launcher package and using it before try block and it works but the catch block is still triggered regardless.

    So I am displaying the error text and it says XMLHttpRequest error, in Chrome console, I can see

    Access to XMLHttpRequest at <pdf_url> from origin 'http://localhost:49306' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

    opened by gegobyte 1
  • Null check operator used on a null value

    Null check operator used on a null value

    I got exception when openning the PDF on android. It happens after the phone got update. The phone is Samsung S7 edge. the android version is 8.0.0. The Samsung Experience version is 9.0. Android security patch level is 1 September 2020.

    Null check operator used on a null value

    sliver_multi_box_adaptor.dart in RenderSliverMultiBoxAdaptor.childMainAxisPosition at line 567 within flutter
    sliver_multi_box_adaptor.dart in RenderSliverMultiBoxAdaptor.paint at line 635 within flutter
    object.dart in RenderObject._paintWithContext at line 2317 within flutter
    object.dart in PaintingContext.paintChild at line 187 within flutter
    sliver_padding.dart in RenderSliverEdgeInsetsPadding.paint at line 274 within flutter
    object.dart in RenderObject._paintWithContext at line 2317 within flutter
    object.dart in PaintingContext.paintChild at line 187 within flutter
    viewport.dart in RenderViewportBase._paintContents at line 654 within flutter
    object.dart in PaintingContext.pushLayer at line 394 within flutter
    object.dart in PaintingContext.pushClipRect at line 450 within flutter
    viewport.dart in RenderViewportBase.paint at line 635 within flutter
    object.dart in RenderObject._paintWithContext at line 2317 within flutter
    object.dart in PaintingContext._repaintCompositedChild at line 139 within flutter
    object.dart in PaintingContext.repaintCompositedChild at line 100 within flutter
    object.dart in PipelineOwner.flushPaint at line 975 within flutter
    binding.dart in RendererBinding.drawFrame at line 464 within flutter
    binding.dart in WidgetsBinding.drawFrame at line 876 within flutter
    binding.dart in RendererBinding._handlePersistentFrameCallback at line 328 within flutter
    binding.dart in SchedulerBinding._invokeFrameCallback at line 1144 within flutter
    binding.dart in SchedulerBinding.handleDrawFrame at line 1082 within flutter
    binding.dart in SchedulerBinding._handleDrawFrame at line 998 within flutter
    zone.dart in _rootRun at line 1354
    zone.dart in _CustomZone.run at line 1258
    zone.dart in _CustomZone.runGuarded at line 1162
    hooks.dart in _invoke at line 163
    platform_dispatcher.dart in PlatformDispatcher._drawFrame at line 259
    hooks.dart in _drawFrame at line 126
    

    [✓] Flutter (Channel stable, 2.2.1, on macOS 11.2.3 20D91 darwin-x64, locale en-AU) • Flutter version 2.2.1 at /Users/lli/flutter • Framework revision 02c026b03c (9 days ago), 2021-05-27 12:24:44 -0700 • Engine revision 0fdb562ac8 • Dart version 2.13.1

    [✓] Android toolchain - develop for Android devices (Android SDK version 29.0.3) • Android SDK at /Users/bravedev/Library/Android/sdk • Platform android-29, build-tools 29.0.3 • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264) • All Android licenses accepted.

    [✓] Xcode - develop for iOS and macOS • Xcode at /Applications/Xcode.app/Contents/Developer • Xcode 12.5, Build version 12E262 • CocoaPods version 1.10.1

    [✓] Chrome - develop for the web • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

    [✓] Android Studio (version 4.2) • Android Studio at /Applications/Android Studio.app/Contents • Flutter plugin can be installed from: 🔨 https://plugins.jetbrains.com/plugin/9212-flutter • Dart plugin can be installed from: 🔨 https://plugins.jetbrains.com/plugin/6351-dart • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264)

    [✓] VS Code (version 1.56.2) • VS Code at /Applications/Visual Studio Code.app/Contents • Flutter extension version 3.23.0

    [✓] Connected device (3 available) • Android SDK built for x86 (mobile) • emulator-5554 • android-x86 • Android 10 (API 29) (emulator) • macOS (desktop) • macos • darwin-x64 • macOS 11.2.3 20D91 darwin-x64 • Chrome (web) • chrome • web-javascript • Google Chrome 90.0.4430.212

    • No issues found!

    opened by cool-lei 1
  • Dependence on flutter_svg: 0.17

    Dependence on flutter_svg: 0.17

    Please upgrade flutter_svg to version 0.19.2+1

    /C:/Flutter/.pub-cache/hosted/pub.dartlang.org/flutter_svg-0.17.4/lib/src/picture_stream.dart:88:26: Error: Type 'DiagnosticableMixin' not found. class PictureStream with DiagnosticableMixin { ^^^^^^^^^^^^^^^^^^^ /C:/Flutter/.pub-cache/hosted/pub.dartlang.org/flutter_svg-0.17.4/lib/src/picture_stream.dart:192:44: Error: Type 'DiagnosticableMixin' not found. abstract class PictureStreamCompleter with DiagnosticableMixin {
    ^^^^^^^^^^^^^^^^^^^ /C:/Flutter/.pub-cache/hosted/pub.dartlang.org/flutter_svg-0.17.4/lib/src/picture_stream.dart:88:7: Error: The type 'DiagnosticableMixin' can't be mixed in. class PictureStream with DiagnosticableMixin { ^ /C:/Flutter/.pub-cache/hosted/pub.dartlang.org/flutter_svg-0.17.4/lib/src/picture_stream.dart:192:16: Error: The type 'DiagnosticableMixin' can't be mixed in. abstract class PictureStreamCompleter with DiagnosticableMixin {
    ^ /C:/Flutter/.pub-cache/hosted/pub.dartlang.org/flutter_svg-0.17.4/lib/src/picture_stream.dart:167:11: Error: Superclass has no method named 'debugFillProperties'. super.debugFillProperties(properties); ^^^^^^^^^^^^^^^^^^^ /C:/Flutter/.pub-cache/hosted/pub.dartlang.org/flutter_svg-0.17.4/lib/src/picture_stream.dart:171:30: Error: The method 'toStringShort' isn't defined for the class 'PictureStreamCompleter'.

    • 'PictureStreamCompleter' is from 'package:flutter_svg/src/picture_stream.dart' ('/C:/Flutter/.pub-cache/hosted/pub.dartlang.org/flutter_svg-0.17.4/lib/src/picture_stream.dart'). Try correcting the name to the name of an existing method, or defining a method named 'toStringShort'. ifPresent: _completer?.toStringShort(), ^^^^^^^^^^^^^ /C:/Flutter/.pub-cache/hosted/pub.dartlang.org/flutter_svg-0.17.4/lib/src/picture_stream.dart:266:11: Error: Superclass has no method named 'debugFillProperties'. super.debugFillProperties(description); ^^^^^^^^^^^^^^^^^^^

    FAILURE: Build failed with an exception.

    • Where: Script 'C:\Flutter\packages\flutter_tools\gradle\flutter.gradle' line: 904

    • What went wrong: Execution failed for task ':app:compileFlutterBuildRelease'.

    Process 'command 'C:\Flutter\bin\flutter.bat'' finished with non-zero exit value 1

    • Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

    • Get more help at https://help.gradle.org

    duplicate 
    opened by Yoda-Man 1
Owner
Jawad
Code... Code.. Code...
Jawad
Rv-app - Flutter Remote Viewing Assistant App

Flutter Remote Viewing Assistant App screenshots web version https://rv-assistan

Amir 1 Dec 1, 2022
FPix - A free image video ( pixabay ) viewing App developed using flutter and compose

fPix a project where I practiced Flutter myself, I will get image of https://pixabay.com for presentation. It's pretty easy now. Keep trying. cPix a p

Void Young 9 Feb 7, 2022
A Flutter application for viewing a rich feed of GitHub activity.

github_activity_feed A Flutter application for viewing a rich feed of GitHub activity. Project status: Public Preview: Version 0.8.2 Supported platfor

Reuben Turner 74 Nov 24, 2022
Flutter plugin (android) for sharing bytes and files Offline, (Based on the android Nearby Connections API)

nearby_connections An android flutter plugin for the Nearby Connections API Currently supports Bytes and Files. Transfer Data between multiple connect

Prerak Mann 63 Nov 21, 2022
Download files from Firebase Storage with Flutter. List all images, videos, or other files from Firebase and download them.

Flutter Tutorial - Download Files From Firebase Storage Download files from Firebase Storage with Flutter. List all images, videos, or other files fro

Johannes Milke 28 Dec 4, 2022
Upload Files To Firebase Storage with Flutter. Pick images, videos, or other files from your device and upload them to Firebase.

Flutter Tutorial - Upload Files To Firebase Storage Upload Files To Firebase Storage with Flutter. Pick images, videos, or other files from your devic

Johannes Milke 30 Dec 28, 2022
Bac-App-Flutter - Flutter application where you can read PDF locally or by internet and is saved

Bac App - Flutter Flutter application where you can read PDF locally or by inter

Chakib Ammar Aouchiche 3 Jun 7, 2022
Enhanced PDF view for Flutter.

flutter_cached_pdfview A package to show Native PDF View for iOS and Android, support Open from a different resource like Path, Asset or Url and Cache

Abdelrahman Saed 95 Dec 30, 2022
Pdf creation module for dart/flutter

Pdf for Dart and Flutter This set of plugins allows Flutter apps to generate and print pdf files to the device printer. This plugin works for iOS and

David PHAM-VAN 954 Jan 3, 2023
PDF view for Flutter

flutter_pdfview Native PDF View for iOS and Android Use this package as a library 1. Depend on it Add this to your package's pubspec.yaml file: depend

endigo 184 Dec 7, 2022
Dialogs for picking and saving files in Android and in iOS.

flutter_file_dialog Dialogs for picking and saving files in Android and in iOS. Features Supports Android (API level 19 or later) and iOS (10.0 or lat

KineApps 26 Dec 31, 2022
A Flutter plugin to read 🔖 metadata of 🎵 media files. Supports Windows, Linux & Android.

flutter_media_metadata A Flutter plugin to read metadata of media files. A part of Harmonoid open source project ?? Install Add in your pubspec.yaml.

Harmonoid 60 Dec 2, 2022
WooCommerce App template that uses Flutter. Integrated to work with WooCommerce stores, connect and create an IOS and Android app from Flutter for IOS and Android

WooCommerce App: Label StoreMax Label StoreMax - v5.3.1 Official WooSignal WooCommerce App About Label StoreMax Label StoreMax is an App Template for

WooSignal 314 Jan 9, 2023
Permission plugin for Flutter. This plugin provides a cross-platform (iOS, Android) API to request and check permissions.

Flutter permission_handler plugin The Flutter permission_handler plugin is build following the federated plugin architecture. A detailed explanation o

Baseflow 1.7k Dec 31, 2022
Klutter plugin makes it possible to write a Flutter plugin for both Android and iOS using Kotlin only.

The Klutter Framework makes it possible to write a Flutter plugin for both Android and iOS using Kotlin Multiplatform. Instead of writing platform spe

Gillian 33 Dec 18, 2022
This plugin create a binding between your translations from .arb files and your Flutter app.

PROJECT MAINTENANCE PAUSED This project is no longer maintained due to the lack of time and availability. I'm a developer to and I know how frustratin

Razvan Lung 255 Dec 3, 2022
Flutter plugin that leverages Storage Access Framework (SAF) API to get access and perform the operations on files and folders.

Flutter plugin that leverages Storage Access Framework (SAF) API to get access and perform the operations on files and folders.

Vehement 8 Nov 26, 2022
A Flutter plugin for sharing files & text with other applications.

esys_flutter_share A Flutter plugin for sharing files & text with other applications. IMPORTANT Note for iOS If you are starting a new fresh app, you

ESYS GmbH 134 Sep 28, 2022
Megalinks is an android app where we provide free resources available for video editing, like Scenepacks, project files of the big editor, tutorials, etc...

MegaLinks Megalinks is an android app where we provide free resources available for video editing, like Scenepacks, project files of the big editor, t

Vishal Rajesh Karangale 3 Jul 8, 2022