Git Product home page Git Product logo

flutter_pdfview's People

Contributors

781flyingdutchman avatar carguo avatar daanporon avatar daisuke310vvv avatar deakjahn avatar endigo avatar jonasbadstuebner avatar krispypen avatar macitkaraca avatar miguelslemos avatar moazelsawaf avatar mouxhun avatar pcolbp avatar phamnhuvu-dev avatar santiihoyos avatar stefalda avatar tvh avatar wmatusiak avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

flutter_pdfview's Issues

Pdfview disappears after moving the app to background

I am displaying a pdf after downloading the pdf. The pdf screen has share button in whih i share the pdf url. Suppose the pdf is downloaded and it displays correctly but when i click share button and after choosing an option like whatsapp to share the url and after sharing when i come back to the app the pdf disappears but if i scroll through the screen the onPageChanged is method called but i cant see the pdf.

Following is my code snippet

return PDFView(
                          filePath:
                              patientReportDetailPreviewBloc.fileValue?.path,
                          autoSpacing: true,
                          pageSnap: true,
                          swipeHorizontal: false,
                          nightMode: false,
                          onRender: (_pages) {
                            _totalPages = _pages;
                            pdfReady = true;
                            patientReportDetailPreviewBloc
                                .changeProgress(false);
                          },
                          onViewCreated: (vc) {
                            _pdfViewController = vc;
                          },
                          onPageChanged: (page, total) {
                            debugPrint("Pritish");
                          },
                          onPageError: (page, e) {
                            debugPrint("Error $e");
                          },
                        );

Download file from url

Hi friends.
I just want to know if there's a way to download file from URL for the first time, then open it from the new path in the next time.
regards

Landscape mode fullscreen?

Any way to show fullscreen that page when we are in landscape mode? (show all as a page)

Now in landscape mode I only see the full page 30%

I don't want to scroll/swype on it

error: java.io.FileNotFoundException: No such file or directory

When I run flutter run sometimes I get this error:

I/flutter (12110): [onError, {error: java.io.FileNotFoundException: No such file or directory}]
I/flutter (12110): java.io.FileNotFoundException: No such file or directory                                        
I/flutter (12110): /data/user/0/com.example.myapp/app_flutter/mypdf.pdf  

Can somebody help me to resolve this issue?

Duplicate Classes in Dependencies

Dear Sir, this package may have a class name clash with another package:

auto_size_text: ^1.1.2
cupertino_icons: ^0.1.2
flutter_pdfview: ^1.0.0+6
flutter_swiper: ^1.1.6
flutter_webview_plugin: ^0.3.5
flutter_xlider: ^2.4.3
folding_cell: ^0.1.2
font_awesome_flutter: ^8.4.0
http: ^0.12.0+2
intl: ^0.15.8
path_provider: ^1.1.0
pull_to_refresh: ^1.3.7
rxdart: ^0.22.0
scoped_model: ^1.0.1
shared_preferences: ^0.5.2
table_calendar: ^1.2.2
vector_math: ^2.0.8

C:\Users\Ted\DEV\swan>flutter doctor -v
[√] Flutter (Channel stable, v1.5.4-hotfix.2, on Microsoft Windows [Version 10.0.17134.765], locale en-US)
• Flutter version 1.5.4-hotfix.2 at C:\flutter
• Framework revision 7a4c33425d (5 weeks ago), 2019-04-29 11:05:24 -0700
• Engine revision 52c7a1e849
• Dart version 2.3.0 (build 2.3.0-dev.0.5 a1668566e5)

[√] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
• Android SDK at C:\Users\Ted\AppData\Local\Android\sdk
• Android NDK location not configured (optional; useful for native profiling support)
• Platform android-28, build-tools 28.0.3
• Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
• Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1343-b01)
• All Android licenses accepted.

[√] Android Studio (version 3.4)
• Android Studio at C:\Program Files\Android\Android Studio
• Flutter plugin version 35.3.1
• Dart plugin version 183.6270
• Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1343-b01)

[√] VS Code (version 1.34.0)
• VS Code at C:\Users\Ted\AppData\Local\Programs\Microsoft VS Code
• Flutter extension version 3.0.2

[√] Connected device (1 available)
• Android SDK built for x86 • emulator-5554 • android-x86 • Android 9 (API 28) (emulator)

• No issues found!

C:\Users\Ted\DEV\swan>flutter run --debug
Using hardware rendering with device Android SDK built for x86. If you get graphics artifacts, consider enabling software rendering with "--enable-software-rendering".
Launching lib/main.dart on Android SDK built for x86 in debug mode...
Initializing gradle... 0.8s
Resolving dependencies... 2.7s
D8: Program type already present: android.support.v4.os.ResultReceiver$MyResultReceiver

FAILURE: Build failed with an exception.

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

com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives: C:\Users\Ted\DEV\swan\build\app\intermediates\transforms\dexBuilder\debug\4.jar, C:\Users\Ted\DEV\swan\build\app\intermediates\transforms\dexBuilder\debug\5.jar, C:\Users\Ted\DEV\swan\build\app\intermediates\transforms\dexBuilder\debug\6.jar, C:\Users\Ted\DEV\swan\build\app\intermediates\transforms\dexBuilder\debug\7.jar, C:\Users\Ted\DEV\swan\build\app\intermediates\transforms\dexBuilder\debug\8.jar, C:\Users\Ted\DEV\swan\build\app\intermediates\transforms\dexBuilder\debug\9.jar, C:\Users\Ted\DEV\swan\build\app\intermediates\transforms\dexBuilder\debug\10.jar, C:\Users\Ted\DEV\swan\build\app\intermediates\transforms\dexBuilder\debug\11.jar, C:\Users\Ted\DEV\swan\build\app\intermediates\transforms\dexBuilder\debug\12.jar, C:\Users\Ted\DEV\swan\build\app\intermediates\transforms\dexBuilder\debug\13.jar, C:\Users\Ted\DEV\swan\build\app\intermediates\transforms\dexBuilder\debug\14.jar, C:\Users\Ted\DEV\swan\build\app\intermediates\transforms\dexBuilder\debug\15.jar, C:\Users\Ted\DEV\swan\build\app\intermediates\transforms\dexBuilder\debug\16.jar, C:\Users\Ted\DEV\swan\build\app\intermediates\transforms\dexBuilder\debug\17.jar, C:\Users\Ted\DEV\swan\build\app\intermediates\transforms\dexBuilder\debug\18.jar, C:\Users\Ted\DEV\swan\build\app\intermediates\transforms\dexBuilder\debug\19.jar, C:\Users\Ted\DEV\swan\build\app\intermediates\transforms\dexBuilder\debug\20.jar, C:\Users\Ted\DEV\swan\build\app\intermediates\transforms\dexBuilder\debug\21.jar, C:\Users\Ted\DEV\swan\build\app\intermediates\transforms\dexBuilder\debug\22.jar, C:\Users\Ted\DEV\swan\build\app\intermediates\transforms\dexBuilder\debug\23.jar, C:\Users\Ted\DEV\swan\build\app\intermediates\transforms\dexBuilder\debug\24.jar, C:\Users\Ted\DEV\swan\build\app\intermediates\transforms\dexBuilder\debug\25.jar, C:\Users\Ted\DEV\swan\build\app\intermediates\transforms\dexBuilder\debug\26.jar, C:\Users\Ted\DEV\swan\build\app\intermediates\transforms\dexBuilder\debug\27.jar, C:\Users\Ted\DEV\swan\build\app\intermediates\transforms\dexBuilder\debug\28.jar, C:\Users\Ted\DEV\swan\build\app\intermediates\transforms\dexBuilder\debug\29.jar, C:\Users\Ted\DEV\swan\build\app\intermediates\transforms\dexBuilder\debug\30.jar, C:\Users\Ted\DEV\swan\build\app\intermediates\transforms\dexBuilder\debug\31.jar, C:\Users\Ted\DEV\swan\build\app\intermediates\transforms\dexBuilder\debug\32.jar, C:\Users\Ted\DEV\swan\build\app\intermediates\transforms\dexBuilder\debug\33.jar, C:\Users\Ted\DEV\swan\build\app\intermediates\transforms\dexBuilder\debug\34.jar, C:\Users\Ted\DEV\swan\build\app\intermediates\transforms\dexBuilder\debug\35.jar, C:\Users\Ted\DEV\swan\build\app\intermediates\transforms\dexBuilder\debug\36.jar, C:\Users\Ted\DEV\swan\build\app\intermediates\transforms\dexBuilder\debug\37.jar, C:\Users\Ted\DEV\swan\build\app\intermediates\transforms\dexBuilder\debug\55.jar, C:\Users\Ted\DEV\swan\build\app\intermediates\transforms\dexBuilder\debug\60.jar, C:\Users\Ted\DEV\swan\build\app\intermediates\transforms\dexBuilder\debug\65.jar, C:\Users\Ted\DEV\swan\build\app\intermediates\transforms\dexBuilder\debug\70.jar, C:\Users\Ted\DEV\swan\build\app\intermediates\transforms\dexBuilder\debug\75.jar, C:\Users\Ted\DEV\swan\build\app\intermediates\transforms\dexBuilder\debug\80.jar, C:\Users\Ted\DEV\swan\build\app\intermediates\transforms\dexBuilder\debug\85.jar, C:\Users\Ted\DEV\swan\build\app\intermediates\transforms\dexBuilder\debug\90.jar, C:\Users\Ted\DEV\swan\build\app\intermediates\transforms\dexBuilder\debug\95.jar, C:\Users\Ted\DEV\swan\build\app\intermediates\transforms\dexBuilder\debug\100.jar, C:\Users\Ted\DEV\swan\build\app\intermediates\transforms\dexBuilder\debug\105.jar, C:\Users\Ted\DEV\swan\build\app\intermediates\transforms\dexBuilder\debug\110.jar
Learn how to resolve the issue at https://developer.android.com/studio/build/dependencies#duplicate_classes.
Program type already present: android.support.v4.os.ResultReceiver$MyResultReceiver

  • 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

BUILD FAILED in 6s
Running Gradle task 'assembleDebug'...
Running Gradle task 'assembleDebug'... Done 7.0s


The Gradle failure may have been because of AndroidX incompatibilities in this Flutter app.
See https://goo.gl/CP92wY for more information on the problem and how to fix it.


Gradle task assembleDebug failed with exit code 1

Upgrade from 1.0.0+10 to 1.0.1 breaks app on android

Today I hit the upgrade button and 1.0.1 broke flutter on Android (both emulator and real device) with following error on the emulator:

D/com.shockwave.pdfium.PdfiumCore(28811): Starting PdfiumAndroid 1.9.0
D/EGL_emulation(28811): eglMakeCurrent: 0xebc1cc40: ver 2 0 (tinfo 0xd586e540)
I/flutter (28811): [onError, {error: java.io.FileNotFoundException: No content provider: /data/user/0/****/app_flutter/****.pdf}]
I/flutter (28811): java.io.FileNotFoundException: No content provider: /data/user/0/****/app_flutter/****.pdf

I confirmed the behavior by downgrading to 1.0.0+10 (works) and then upgrading back to 1.0.1 (broken). The error persists using both path_provider getTemporaryDirectory() and getApplicationDocumentsDirectory() functions.

My flutter doctor output for your reference:

[✓] Flutter (Channel stable, v1.12.13+hotfix.8, on Linux, locale en_US.UTF-8)
 
[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
[✓] Android Studio (version 3.6)
[!] VS Code (version 1.42.1)
    ✗ Flutter extension not installed; install from
      https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter
[✓] Connected device (1 available)

after build apk, cannot view pdf in app

Hi, I have an issue when I build the apk then I open pdf in app. The app will close but in the debug mode is working. Can you help me? Thanks in advanced

Implement pageFitPolicy in Android

AndroidPdfViewer supports pageFitPolicy WITDH, HEIGHT or BOTH. Please, support that configuration, because when you are in landscape mode, in Android you cannot zoom out.

Wish List: Search

Great package, looks quite flexible. With this I can create my own custom bookmarks feature then use the setpage function to jump to a specific page.

I'd like to implement search and as well as a content page(or return to content page), for greater usability. Do you plan to add anything like this in the near future?

Thanks

performance

The pdf viewer shows a white screen when used for a long time and throws the warning
" The application may be doing too much work on its main thread."

Does not display on android (regression ?)

Upgrading flutter, the plugin still works on iOS but no longer on android. Nothing is display (test with flutter_pdfview-master)

flutter doctor:

MacBook-Pro-de-XXX:zzzz$ flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel dev, v1.7.9, on Mac OS X 10.14.5 18F132, locale fr-FR)
 
[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
[✓] Xcode - develop for iOS and macOS (Xcode 10.2.1)
[✓] iOS tools - develop for iOS devices
[✓] Chrome - develop for the web
[✓] Android Studio (version 3.4)
[✓] VS Code (version 1.35.1)
[✓] Connected device (4 available)

• No issues found!

The log on the terminal is (with an infinite loop on the last message):

Launching lib/main.dart on Nokia 5 1 in debug mode...
Initializing gradle...
Resolving dependencies...
Running Gradle task 'assembleDebug'...
Built build/app/outputs/apk/debug/app-debug.apk.
Installing build/app/outputs/apk/app.apk...
V/DartMessenger(24558): Received message from Dart over channel 'flutter/isolate'
V/DartMessenger(24558): Deferring to registered handler to process message.
E/ion     (24558): ioctl c0044901 failed with code -1: Invalid argument
Syncing files to device Nokia 5 1...
V/DartMessenger(24558): Received message from Dart over channel 'plugins.flutter.io/path_provider'
V/DartMessenger(24558): Deferring to registered handler to process message.
V/DartMessenger(24558): Received message from Dart over channel 'flutter/platform'
V/DartMessenger(24558): Deferring to registered handler to process message.
V/PlatformChannel(24558): Received 'SystemChrome.setApplicationSwitcherDescription' message.
V/DartMessenger(24558): Received message from Dart over channel 'flutter/platform'
V/DartMessenger(24558): Deferring to registered handler to process message.
V/PlatformChannel(24558): Received 'SystemChrome.setSystemUIOverlayStyle' message.
I/flutter (24558): /data/user/0/com.example.flutter_pdfview_example/app_flutter/large.pdf
V/DartMessenger(24558): Received message from Dart over channel 'flutter/platform'
V/DartMessenger(24558): Deferring to registered handler to process message.
V/PlatformChannel(24558): Received 'SystemChrome.setApplicationSwitcherDescription' message.
V/DartMessenger(24558): Received message from Dart over channel 'flutter/platform'
V/DartMessenger(24558): Deferring to registered handler to process message.
V/PlatformChannel(24558): Received 'SystemSound.play' message.
V/DartMessenger(24558): Received message from Dart over channel 'flutter/platform_views'
V/DartMessenger(24558): Deferring to registered handler to process message.
V/PlatformViewsChannel(24558): Received 'create' message.
I/BufferQueue(24558): [unnamed-24558-0](this:0x73deef9800,id:0,api:0,p:-1,c:-1) BufferQueue core=(24558:com.example.flutter_pdfview_example)
W/pdfview_example(24558): type=1400 audit(0.0:1229): avc: denied { read } for name="u:object_r:graphics_debug_prop:s0" dev="tmpfs" ino=4557 scontext=u:r:untrusted_app:s0:c6,c256,c512,c768 tcontext=u:object_r:graphics_debug_prop:s0 tclass=file permissive=0
E/libc    (24558): Access denied finding property "vendor.debug.sf.stc_interval"
E/libc    (24558): Access denied finding property "vendor.debug.bq.dump"
W/pdfview_example(24558): type=1400 audit(0.0:1230): avc: denied { read } for name="u:object_r:debug_bq_dump_prop:s0" dev="tmpfs" ino=4538 scontext=u:r:untrusted_app:s0:c6,c256,c512,c768 tcontext=u:object_r:debug_bq_dump_prop:s0 tclass=file permissive=0
E/GED     (24558): Failed to execute ioctl 3223873383, BridgeID(103), err(-1)
E/GED     (24558): ged_gpu_timestamp: GED_ERROR_FAIL eErr = 1, 0
I/BufferQueueConsumer(24558): [unnamed-24558-0](this:0x73deef9800,id:0,api:0,p:-1,c:24558) connect(C): consumer=(24558:com.example.flutter_pdfview_example) controlledByApp=true
E/libc    (24558): Access denied finding property "vendor.debug.bq.dump"
I/BufferQueueConsumer(24558): [unnamed-24558-0](this:0x73deef9800,id:0,api:0,p:-1,c:24558) setConsumerName: unnamed-24558-0
E/libc    (24558): Access denied finding property "vendor.debug.bq.line"
E/libc    (24558): Access denied finding property "vendor.debug.bq.dump"
I/BufferQueueConsumer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:0,p:-1,c:24558) setConsumerName: SurfaceTexture-0-24558-0
E/libc    (24558): Access denied finding property "vendor.debug.bq.line"
I/GLConsumer(24558): [SurfaceTexture-0-24558-0] detachFromContext
W/pdfview_example(24558): type=1400 audit(0.0:1231): avc: denied { read } for name="u:object_r:debug_bq_dump_prop:s0" dev="tmpfs" ino=4538 scontext=u:r:untrusted_app:s0:c6,c256,c512,c768 tcontext=u:object_r:debug_bq_dump_prop:s0 tclass=file permissive=0
I/BufferQueueConsumer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:0,p:-1,c:24558) setDefaultBufferSize: width=1080 height=1824
D/com.shockwave.pdfium.PdfiumCore(24558): Starting PdfiumAndroid 1.9.0
V/DartMessenger(24558): Setting handler for channel 'plugins.endigo.io/pdfview_0'
I/DecorView(24558): It non-support bigbang
I/PhoneWindow(24558): isNeedChangeNaviBarColor taskInfo: [android.app.ActivityManager$RunningTaskInfo@1237f66] size: 1
I/PhoneWindow(24558): isAPPNeedChange pkgName: com.example.flutter_pdfview_example needKeep: false
I/PhoneWindow(24558): isNeedChangeNaviBarColor false
I/PhoneWindow(24558): generateLayout mNavigationBarColor: ff000000
I/PhoneWindow(24558): generateLayout isLightNavi false, Visibility: 0
D/ViewRootImpl[MainActivity](24558): hardware acceleration = true , fakeHwAccelerated = false, sRendererDisabled = false, forceHwAccelerated = false, sSystemRendererDisabled = false
W/Binder:24558_1(24558): type=1400 audit(0.0:1235): avc: denied { read } for name="u:object_r:graphics_debug_prop:s0" dev="tmpfs" ino=4557 scontext=u:r:untrusted_app:s0:c6,c256,c512,c768 tcontext=u:object_r:graphics_debug_prop:s0 tclass=file permissive=0
I/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) connect(P): api=1 producer=(408:???) producerControlledByApp=false
E/libc    (24558): Access denied finding property "vendor.debug.bq.line"
D/BufferQueueConsumer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) getReleasedBuffers: returning mask 0xffffffffffffffff
E/ion     (24558): ioctl c0044901 failed with code -1: Invalid argument
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 0
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 0
D/Surface (24558): Surface::connect(this=0x73ce1ff000,api=1)
D/Surface (24558): Surface::allocateBuffers(this=0x73ce1ff000)
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 0
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 0
D/mali_winsys(24558): EGLint new_window_surface(egl_winsys_display *, void *, EGLSurface, EGLConfig, egl_winsys_surface **, EGLBoolean) returns 0x3000
I/GLConsumer(24558): [SurfaceTexture-0-24558-0] attachToContext
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(24558): [SurfaceTexture-0-24558-0](this:0x73deef9800,id:0,api:1,p:408,c:24558) cancelBuffer: slot 1
D/BufferQueueProducer(2... 

Add a license

The file is empty, and this is what gets displayed in the automatic licence dialog of a Flutter app.

App crashing when in production

Hi,

since your last update, app is crashing when opening the PDF.

Steps to reproduce:

  • clone the package
  • go to exemple folder
    -run "flutter build apk"
  • install the APK on the device
    -run the app and open the pdf, the app should crash

password property is bool in dart api, but string in IOS and Android plugins

By far and away the best Flutter PDF plugin, thanks!

Unfortunately there is a gremlin in the definition of the password property in PDFView - it's a bool, but I think it should be a string? (At least, I hope it should be a string since I need to be able to unlock programatically without the user having to know the password...)

On Android I get "java.lang.Boolean cannot be cast to java.lang.String", and I see password is a string in both the IOS and Android plugins.

Application close while opening webpage link

Application crash without error when try to touch webpage link given in PDF.

[√] Flutter (Channel stable, v1.7.8+hotfix.3, on Microsoft Windows [Version 10.0.18362.239], locale en-IN)
    • Flutter version 1.7.8+hotfix.3 at C:\src\flutter
    • Framework revision b712a172f9 (3 weeks ago), 2019-07-09 13:14:38 -0700
    • Engine revision 54ad777fd2
    • Dart version 2.4.0


[√] Android toolchain - develop for Android devices (Android SDK version 29.0.0)
    • Android SDK at C:\Users\Superman\AppData\Local\Android\Sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-29, build-tools 29.0.0
    • ANDROID_HOME = C:\Users\Superman\AppData\Local\Android\Sdk
    • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1343-b01)
    • All Android licenses accepted.

[√] Android Studio (version 3.4)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin version 37.1.1
    • Dart plugin version 183.6270
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1343-b01)

[√] VS Code, 64-bit edition (version 1.36.1)
    • VS Code at C:\Program Files\Microsoft VS Code
    • Flutter extension version 3.2.0

[!] Connected device
    ! No devices available

! Doctor found issues in 1 category.

setPage() produces Exception

I've noticed that the setPage function produces an exception on Android, no exception is produced on iOS.
I created a floatingactionbutton to return the user to the 1st page of the pdf like so.

FloatingActionButton(
                  mini: true,
                  heroTag: "pdfHome",
                  child: Icon(Icons.home),
                  onPressed: () async {
                    //return to first page
                   await snapshot.data.setPage(0);
                  },
                ),

When I press the button (android) the debug console returns the following exception.

E/MethodChannel#plugins.endigo.io/pdfview_0( 9605): Failed to handle method call
E/MethodChannel#plugins.endigo.io/pdfview_0( 9605): java.lang.IllegalStateException: Reply already submitted
E/MethodChannel#plugins.endigo.io/pdfview_0( 9605): 	at io.flutter.embedding.engine.dart.DartMessenger$Reply.reply(DartMessenger.java:124)
E/MethodChannel#plugins.endigo.io/pdfview_0( 9605): 	at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler$1.success(MethodChannel.java:204)
E/MethodChannel#plugins.endigo.io/pdfview_0( 9605): 	at io.endigo.plugins.pdfviewflutter.FlutterPDFView.setPage(FlutterPDFView.java:94)
E/MethodChannel#plugins.endigo.io/pdfview_0( 9605): 	at io.endigo.plugins.pdfviewflutter.FlutterPDFView.onMethodCall(FlutterPDFView.java:73)
E/MethodChannel#plugins.endigo.io/pdfview_0( 9605): 	at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:201)
E/MethodChannel#plugins.endigo.io/pdfview_0( 9605): 	at io.flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(DartMessenger.java:88)
E/MethodChannel#plugins.endigo.io/pdfview_0( 9605): 	at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java:219)
E/MethodChannel#plugins.endigo.io/pdfview_0( 9605): 	at android.os.MessageQueue.nativePollOnce(Native Method)
E/MethodChannel#plugins.endigo.io/pdfview_0( 9605): 	at android.os.MessageQueue.next(MessageQueue.java:325)
E/MethodChannel#plugins.endigo.io/pdfview_0( 9605): 	at android.os.Looper.loop(Looper.java:142)
E/MethodChannel#plugins.endigo.io/pdfview_0( 9605): 	at android.app.ActivityThread.main(ActivityThread.java:6518)
E/MethodChannel#plugins.endigo.io/pdfview_0( 9605): 	at java.lang.reflect.Method.invoke(Native Method)
E/MethodChannel#plugins.endigo.io/pdfview_0( 9605): 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
E/MethodChannel#plugins.endigo.io/pdfview_0( 9605): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
E/DartMessenger( 9605): Uncaught exception in binary message listener
E/DartMessenger( 9605): java.lang.IllegalStateException: Reply already submitted
E/DartMessenger( 9605): 	at io.flutter.embedding.engine.dart.DartMessenger$Reply.reply(DartMessenger.java:124)
E/DartMessenger( 9605): 	at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:219)
E/DartMessenger( 9605): 	at io.flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(DartMessenger.java:88)
E/DartMessenger( 9605): 	at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java:219)
E/DartMessenger( 9605): 	at android.os.MessageQueue.nativePollOnce(Native Method)
E/DartMessenger( 9605): 	at android.os.MessageQueue.next(MessageQueue.java:325)
E/DartMessenger( 9605): 	at android.os.Looper.loop(Looper.java:142)
E/DartMessenger( 9605): 	at android.app.ActivityThread.main(ActivityThread.java:6518)
E/DartMessenger( 9605): 	at java.lang.reflect.Method.invoke(Native Method)
E/DartMessenger( 9605): 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
E/DartMessenger( 9605): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
flutter doctor -v
[✓] Flutter (Channel dev, v1.5.8, on Mac OS X 10.14.4 18E226, locale en-GB)
    • Flutter version 1.5.8 at /Users/xxxxx/Documents/Programming/flutter
    • Framework revision 0ba67226ee (13 days ago), 2019-04-24 17:18:28 -0700
    • Engine revision c63d1cf9c9
    • Dart version 2.3.0 (build 2.3.0-dev.0.1 1f1592edce)

 
[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
    • Android SDK at /Users/xxxx/Library/Android/sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-28, build-tools 28.0.3
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1248-b01)
    • All Android licenses accepted.

[✓] iOS toolchain - develop for iOS devices (Xcode 10.2.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 10.2.1, Build version 10E1001
    • ios-deploy 1.9.4
    • CocoaPods version 1.6.1

[✓] Android Studio (version 3.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 33.0.1
    • Dart plugin version 182.5215
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1248-b01)

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

[✓] Connected device (3 available)
    • ASUS X00TD        • XXXXXXXX                      • android-arm64 • Android 8.1.0 (API 27)
    • IT iPhone • 00000000-00000000000000            • ios           • iOS 12.1.4
    • iPhone Xʀ         • 000000-0000-0000-0000-00000000000• ios           • com.apple.CoreSimulator.SimRuntime.iOS-12-2 (simulator)

• No issues found!

VERSION ISSUE

Trying to use platform views with API 19, required API level is: 20

Please verify that file has read permission and try again.

I have integrated your library in my app. Whenever i do pub get i get following C:\flutter.pub-cache\hosted\pub.dartlang.org\flutter_pdfview-1.0.0+11\android\src\main\kotlin\io\endigo\plugins\pdfviewflutter\PDFFlutterPlugin.kt' even though it exists. Please verify that this file has read permission and try again.

"CocoaPods could not find compatible versions for pod" issue is occurring during ios app build for release

CocoaPods could not find compatible versions for pod "flutter_pdfview":
In Podfile:
flutter_pdfview (from .symlinks/plugins/flutter_pdfview/ios)

Specs satisfying the `flutter_pdfview (from `.symlinks/plugins/flutter_pdfview/ios`)` dependency were found, but they required a higher minimum deployment target.

Error output from CocoaPods:

[!] Automatically assigning platform `iOS` with version `8.0` on target `Runner` because no platform was specified. Please specify a platform for this target in your Podfile. See
`https://guides.cocoapods.org/syntax/podfile.html#platform`.

So please let me know the minimum ios version this package support?.
Thanks in advance.

Need to customise the UI

Hello,
Great plugin but I need to customize it. For an example of the PDFView, I want to give no elevation with all white background.
I am a bit new to Flutter so apologies if it is a stupid question.

JNI DETECTED ERROR IN APPLICATION: java_class == null

Hello guys, i'm facing an application crush on Android devices whenever Pdf screen starts only in release version.
I looked up in the Logcat and found this error:

12-03 21:06:08.034 29544-29637/? A/art: art/runtime/java_vm_ext.cc:410] JNI DETECTED ERROR IN APPLICATION: java_class == null
12-03 21:06:08.034 29544-29637/? A/art: art/runtime/java_vm_ext.cc:410] in call to GetMethodID
12-03 21:06:08.034 29544-29637/? A/art: art/runtime/java_vm_ext.cc:410] from com.shockwave.pdfium.b.a com.shockwave.pdfium.PdfiumCore.nativeGetPageSizeByIndex(long, int, int)
12-03 21:06:08.034 29544-29637/? A/art: art/runtime/java_vm_ext.cc:410] "AsyncTask #6" prio=5 tid=25 Runnable
12-03 21:06:08.034 29544-29637/? A/art: art/runtime/java_vm_ext.cc:410] | group="main" sCount=0 dsCount=0 obj=0x12f432e0 self=0x5583b064e0
12-03 21:06:08.034 29544-29637/? A/art: art/runtime/java_vm_ext.cc:410] | sysTid=29637 nice=10 cgrp=bg_non_interactive sched=0/0 handle=0x7f6a26f450
12-03 21:06:08.034 29544-29637/? A/art: art/runtime/java_vm_ext.cc:410] | state=R schedstat=( 40724999 342552 21 ) utm=4 stm=0 core=5 HZ=100
12-03 21:06:08.034 29544-29637/? A/art: art/runtime/java_vm_ext.cc:410] | stack=0x7f6a16d000-0x7f6a16f000 stackSize=1037KB
12-03 21:06:08.034 29544-29637/? A/art: art/runtime/java_vm_ext.cc:410] | held mutexes= "mutator lock"(shared held)
12-03 21:06:08.034 29544-29637/? A/art: art/runtime/java_vm_ext.cc:410] native: #00 pc 000000000048b870 /system/lib64/libart.so (_ZN3art15DumpNativeStackERNSt3__113basic_ostreamIcNS0_11char_traitsIcEEEEiP12BacktraceMapPKcPNS_9ArtMethodEPv+200)
12-03 21:06:08.034 29544-29637/? A/art: art/runtime/java_vm_ext.cc:410] native: #01 pc 000000000045a620 /system/lib64/libart.so (_ZNK3art6Thread4DumpERNSt3__113basic_ostreamIcNS1_11char_traitsIcEEEEP12BacktraceMap+224)
12-03 21:06:08.034 29544-29637/? A/art: art/runtime/java_vm_ext.cc:410] native: #02 pc 000000000030ea74 /system/lib64/libart.so (_ZN3art9JavaVMExt8JniAbortEPKcS2_+1004)
12-03 21:06:08.034 29544-29637/? A/art: art/runtime/java_vm_ext.cc:410] native: #03 pc 000000000030f448 /system/lib64/libart.so (_ZN3art9JavaVMExt9JniAbortFEPKcS2_z+224)
12-03 21:06:08.034 29544-29637/? A/art: art/runtime/java_vm_ext.cc:410] native: #04 pc 000000000035a7d0 /system/lib64/libart.so (_ZN3art3JNI11GetMethodIDEP7_JNIEnvP7_jclassPKcS6_+1048)
12-03 21:06:08.034 29544-29637/? A/art: art/runtime/java_vm_ext.cc:410] native: #05 pc 0000000000004620 /data/app/com.dmn.digitalkiosk-1/lib/arm64/libjniPdfium.so (Java_com_shockwave_pdfium_PdfiumCore_nativeGetPageSizeByIndex+328)
12-03 21:06:08.034 29544-29637/? A/art: art/runtime/java_vm_ext.cc:410] native: #06 pc 00000000005ca9f4 /data/app/com.dmn.digitalkiosk-1/oat/arm64/base.odex (Java_com_shockwave_pdfium_PdfiumCore_nativeGetPageSizeByIndex__JII+152)
12-03 21:06:08.034 29544-29637/? A/art: art/runtime/java_vm_ext.cc:410] at com.shockwave.pdfium.PdfiumCore.nativeGetPageSizeByIndex(Native method)
12-03 21:06:08.034 29544-29637/? A/art: art/runtime/java_vm_ext.cc:410] at com.shockwave.pdfium.PdfiumCore.b(:-1)
12-03 21:06:08.034 29544-29637/? A/art: art/runtime/java_vm_ext.cc:410] - locked <0x072a7c88> (a java.lang.Object)
12-03 21:06:08.034 29544-29637/? A/art: art/runtime/java_vm_ext.cc:410] at c.c.a.a.g.c(:-1)
12-03 21:06:08.034 29544-29637/? A/art: art/runtime/java_vm_ext.cc:410] at c.c.a.a.g.<init>(:-1)
12-03 21:06:08.034 29544-29637/? A/art: art/runtime/java_vm_ext.cc:410] at c.c.a.a.c.a(:-1)
12-03 21:06:08.034 29544-29637/? A/art: art/runtime/java_vm_ext.cc:410] at c.c.a.a.c.doInBackground(:-1)
12-03 21:06:08.034 29544-29637/? A/art: art/runtime/java_vm_ext.cc:410] at android.os.AsyncTask$2.call(AsyncTask.java:295)
12-03 21:06:08.034 29544-29637/? A/art: art/runtime/java_vm_ext.cc:410] at java.util.concurrent.FutureTask.run(FutureTask.java:237)
12-03 21:06:08.034 29544-29637/? A/art: art/runtime/java_vm_ext.cc:410] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
12-03 21:06:08.034 29544-29637/? A/art: art/runtime/java_vm_ext.cc:410] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
12-03 21:06:08.034 29544-29637/? A/art: art/runtime/java_vm_ext.cc:410] at java.lang.Thread.run(Thread.java:818)
12-03 21:06:08.034 29544-29637/? A/art: art/runtime/java_vm_ext.cc:410]
12-03 21:06:08.034 29544-29637/? A/art: art/runtime/runtime.cc:368] Runtime aborting...
12-03 21:06:08.034 29544-29637/? A/art: art/runtime/runtime.cc:368]
12-03 21:06:08.034 29544-29637/? A/libc: Fatal signal 6 (SIGABRT), code -6 in tid 29637 (AsyncTask #6)
12-03 21:06:08.094 607-607/? A/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
12-03 21:06:08.094 607-607/? A/DEBUG: Build fingerprint: 'samsung/c7ltezh/c7ltechn:6.0.1/MMB29M/C7000ZHU2APJ2:user/release-keys'
12-03 21:06:08.094 607-607/? A/DEBUG: Revision: '4'
12-03 21:06:08.094 607-607/? A/DEBUG: ABI: 'arm64'
12-03 21:06:08.094 607-607/? A/DEBUG: pid: 29544, tid: 29637, name: AsyncTask #6 >>> com.dmn.digitalkiosk <<<
12-03 21:06:08.094 607-607/? A/DEBUG: signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
12-03 21:06:08.124 607-607/? A/DEBUG: Abort message: 'art/runtime/java_vm_ext.cc:410] JNI DETECTED ERROR IN APPLICATION: java_class == null'
12-03 21:06:08.124 607-607/? A/DEBUG: x0 0000000000000000 x1 00000000000073c5 x2 0000000000000006 x3 0000000000000000
12-03 21:06:08.124 607-607/? A/DEBUG: x4 0000000000000000 x5 0000000000000001 x6 0000000000000000 x7 0000000000000000
12-03 21:06:08.124 607-607/? A/DEBUG: x8 0000000000000083 x9 0000007f8a983a70 x10 0000000000000003 x11 0000000000000140
12-03 21:06:08.124 607-607/? A/DEBUG: x12 0000005583e2f6f0 x13 0000005582ed3000 x14 0000000000000000 x15 00000000fffffff2
12-03 21:06:08.124 607-607/? A/DEBUG: x16 0000007f8a97c6a8 x17 0000007f8a93ec6c x18 0000000000000000 x19 0000007f6a26f510
12-03 21:06:08.124 607-607/? A/DEBUG: x20 0000007f6a26f450 x21 0000000000000003 x22 0000000000000006 x23 0000005583a13fc0
12-03 21:06:08.124 607-607/? A/DEBUG: x24 0000007f870191d0 x25 0000005583b064e0 x26 0000005582ee7530 x27 0000000000000001
12-03 21:06:08.124 607-607/? A/DEBUG: x28 0000005583e7ecf0 x29 0000007f6a26e510 x30 0000007f8a93c408
12-03 21:06:08.124 607-607/? A/DEBUG: sp 0000007f6a26e510 pc 0000007f8a93ec74 pstate 0000000020000000
12-03 21:06:08.124 607-607/? A/DEBUG: backtrace:
12-03 21:06:08.124 607-607/? A/DEBUG: #00 pc 000000000006ac74 /system/lib64/libc.so (tgkill+8)
12-03 21:06:08.124 607-607/? A/DEBUG: #01 pc 0000000000068404 /system/lib64/libc.so (pthread_kill+68)
12-03 21:06:08.124 607-607/? A/DEBUG: #02 pc 0000000000021328 /system/lib64/libc.so (raise+28)
12-03 21:06:08.124 607-607/? A/DEBUG: #03 pc 000000000001bc58 /system/lib64/libc.so (abort+60)
12-03 21:06:08.124 607-607/? A/DEBUG: #04 pc 0000000000431978 /system/lib64/libart.so (_ZN3art7Runtime5AbortEv+304)
12-03 21:06:08.124 607-607/? A/DEBUG: #05 pc 00000000001373e4 /system/lib64/libart.so (_ZN3art10LogMessageD2Ev+3136)
12-03 21:06:08.124 607-607/? A/DEBUG: #06 pc 000000000030eeac /system/lib64/libart.so (_ZN3art9JavaVMExt8JniAbortEPKcS2_+2084)
12-03 21:06:08.124 607-607/? A/DEBUG: #07 pc 000000000030f448 /system/lib64/libart.so (_ZN3art9JavaVMExt9JniAbortFEPKcS2_z+224)
12-03 21:06:08.124 607-607/? A/DEBUG: #08 pc 000000000035a7d0 /system/lib64/libart.so (_ZN3art3JNI11GetMethodIDEP7_JNIEnvP7_jclassPKcS6_+1048)
12-03 21:06:08.124 607-607/? A/DEBUG: #09 pc 0000000000004620 /data/app/com.dmn.digitalkiosk-1/lib/arm64/libjniPdfium.so (Java_com_shockwave_pdfium_PdfiumCore_nativeGetPageSizeByIndex+328)
12-03 21:06:08.124 607-607/? A/DEBUG: #10 pc 00000000005ca9f4 /data/app/com.dmn.digitalkiosk-1/oat/arm64/base.odex (offset 0x3ca000)

can you please tell me how to fix this issue..

ProGuard makes it crash

Developers who use ProGuard in their apps should be experiencing app crashes when trying to open a PDF after they build it. Its important to let them know that if they choose to use ProGuard they should add this rule into the config file: -keep class com.shockwave.**

Not reloading when changing path

Hi,

I'm using the widget and if I click on a button on the screen I change the pdf path with setState. But the pdfview doesn't reload. It keeps showing the old one.

Regards,
Leonardo

Closing on Device

in the production version the application runs normally, but when I create the release version the application closes on its own, I am using the real version 1.0.0 + 10

PDFView(
   filePath: urlPDFPath,
   autoSpacing: true,
   enableSwipe: true,
   pageSnap: true,
   swipeHorizontal: true,
   nightMode: false
)

Byte array instead of file path

Considering that the viewer also accepts a byte array in addition to a path (pdfView.FromBytes), it might be added as another way to start the widget. This would remove the need to copy from the Flutter assets to the platform assets as shown in the example.

strange message

Not sure it's related but I got this message with certain pdf files:

Hit tagged parsing error, fatal: "Missing "Properties" dictionary from page resources dictionary"

Otherwise, I cannot get the 'onRender' event with 1.0.0+5 release on iOS, so, following your example, the state of the CircularProgressIndicator cannot be changed

Flashing when load the pdf

I am using a Transition widget to animate the pdf widget,

But there is a lagg and a flashing between my animations, when the library load my pdf.

Any way to handle/remove that flashing?

PDF show blank page when running on Android native

It's work fine on Android when i running flutter app but when i import flutter as a module on android native app. I'm getting this error on logcat:
E/flutter: [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: MissingPluginException(No implementation found for method create on channel flutter/platform_views) #0 MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:319:7) <asynchronous suspension> #1 AndroidViewController._create (package:flutter/src/services/platform_views.dart:640:54) #2 AndroidViewController.setSize (package:flutter/src/services/platform_views.dart:557:14) #3 RenderAndroidView._sizePlatformView (package:flutter/src/rendering/platform_view.dart:174:29) #4 RenderAndroidView.performResize (package:flutter/src/rendering/platform_view.dart:155:5) #5 RenderObject.layout (package:flutter/src/rendering/object.dart:1703:9) #6 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13) #7 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7) #8 RenderStack.performLayout (package:flutter/src/rendering/stack.dart:505:15) #9 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7) #10 RenderFlex.performLayout (package:flutter/src/rendering/flex.dart:806:17) #11 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7) #12 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13) #13 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7) #14 RenderPadding.performLayout (package:flutter/src/rendering/shifted_box.dart:206:11) #15 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7) #16 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13) #17 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7) #18 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13) #19 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7) #20 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13) #21 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7) #22 RenderPositionedBox.performLayout (package:flutter/src/rendering/shifted_box.dart:392:13) #23 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7) #24 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13) #25 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7) #26 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13) #27 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7) #28 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13) #29 RenderOffstage.performLayout (package:flutter/src/rendering/proxy_box.dart:3168:13) #30 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7) #31 RenderStack.performLayout (package:flutter/src/rendering/stack.dart:505:15) #32 RenderObject._layoutWithoutResize (package:flutter/src/rendering/object.dart:1584:7) #33 PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:844:18) #34 RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:344:19) #35 WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:774:13) #36 RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:283:5) #37 SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1102:15) #38 SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1041:9) #39 SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:957:5) #40 _rootRun (dart:async/zone.dart:1126:13) #41 _CustomZone.run (dart:async/zone.dart:1023:19) #42 _CustomZone.runGuarded (dart:async/zone.dart:925:7) #43 _invoke (dart:ui/hooks.dart:259:10) #44 _drawFrame (dart:ui/hooks.dart:217:3)

set page

I noticed you have an onpagechange, could you also add a setpage function for android and ios. Thank you!

How to setPage when the PDF is opened?

I already save and retrieve and last page the user opened, I just can't set the page when the user opens the pdf, how can I achieve this?

I am trying to set the on the onViewCreated but it's not working.

class _PdfScreenState extends State<PdfScreen> {
  
  SharedPreferences prefs;
  final String key = "currentPage";
  int currentPage;

  final Completer<PDFViewController> completer = Completer<PDFViewController>();

  @override
  Widget build(BuildContext context) {

    double height = MediaQuery.of(context).size.height;

    return Container(
        child: FutureBuilder<int>(
          future: getCurrentPage(),
          builder: (context, snapshot){

            if(!snapshot.hasData){

              return Center(child: CircularProgressIndicator());

            } else {

              currentPage = snapshot.data;

              print("CURRENTPAGE: $currentPage");

              return PDFView(
                filePath: widget.path,
                onViewCreated: (PDFViewController pdfViewController) async{

                  completer.complete(pdfViewController);

                  await completer.future.then((controller) async{

                    if(currentPage != null) {
                      await controller.setPage(currentPage);
                    }

                  });

                },
                onPageChanged: (int page, int total){

                  currentPage = page;

                },
              );
            }

          },
        )
    );
  }

  Future<int> getCurrentPage() async{

    prefs = await SharedPreferences.getInstance();
    return prefs.getInt(key);


  }

  Future<void> saveCurrentPage(int currentPage) async{

    prefs = await SharedPreferences.getInstance();
    await prefs.setInt(key, currentPage);
    print("PAGE SAVED!");

  }

  @override
  void dispose() {
    super.dispose();

    saveCurrentPage(currentPage);

  }

}

Night mode

Hi, I noticed the Night Mode is available to use on Android, I cannot see any information how to call this function.

Thanks

Add option displayAsBook

Hi there, great plugin!
Is there anyway to add this option to the plugin? As far as i know, pdfview from PDFKIT has the property displaysAsBook, but for Android, i don't know.
Do you think you'll be able to add this functionality to the plugin?

Thanks

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.