pdf_viewer_plus 1.0.3 copy "pdf_viewer_plus: ^1.0.3" to clipboard
pdf_viewer_plus: ^1.0.3 copied to clipboard

A PDF viewer with enhanced features including a thumbnail sidebar for easy navigation.

PDF Viewer Plus #

pdf_viewer_plus is a Flutter package that provides a comprehensive PDF viewer with a collapsible thumbnail sidebar, accessibility support, and intuitive navigation features.

Features #

  • Complete PDF Viewer — View PDF documents with smooth page transitions
  • Collapsible Thumbnail Sidebar — Navigate through pages using thumbnails, shown or hidden with a smooth animation
  • Flexible Source Support — Load PDFs from URLs or local assets
  • Double-Tap to Zoom — Double-tap anywhere to zoom in (2.5×) centred on the tap; double-tap again to reset
  • Page Indicator — "current / total" overlay displayed at the bottom of the viewer
  • Keyboard Navigation / arrow keys to change page
  • Resume from any page — Open the document at a specific page with initialPage
  • Page change callback — React to page changes with onPageChanged
  • Accessibility — Full screen reader support (VoiceOver / TalkBack) with customisable semantic labels
  • Customizable Appearance — Sidebar width, thumbnail height, background color, selected page decoration, and more
  • Optimized Performance — PDF data loaded once and shared between viewer and thumbnails

Installation #

Add this to your pubspec.yaml:

dependencies:
  pdf_viewer_plus: ^1.0.3

Then run:

flutter pub get

Usage #

import 'package:flutter/material.dart';
import 'package:pdf_viewer_plus/pdf_viewer_plus.dart';

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text('PDF Viewer')),
      body: PdfViewer(
        pdfPath: 'https://example.com/sample.pdf',
        initialPage: 3,
        initialSidebarOpen: true,
        onPageChanged: (page) => print('Now on page $page'),
      ),
    );
  }
}

Customization Options #

Parameter Type Default Description
pdfPath String required URL or asset path to the PDF file
initialPage int 1 Page shown when the document first opens
initialSidebarOpen bool false Whether the sidebar is initially open
sidebarWidth double 160 Width of the thumbnail sidebar
thumbnailHeight double 150 Height of each thumbnail
sidebarBackgroundColor Color Colors.grey Background color of the sidebar
selectedPageDecoration BoxDecoration? null Custom decoration for the selected thumbnail
showZoomHint bool true Show the pinch-to-zoom hint animation on first load
showPageIndicator bool true Show the "current / total" page overlay
onPageChanged void Function(int)? null Called whenever the current page changes
semanticLabels PdfSemanticLabels English defaults Labels announced by screen readers

Accessibility #

All interactive elements are fully labelled for screen readers. You can override every label by passing a custom PdfSemanticLabels:

PdfViewer(
  pdfPath: '...',
  semanticLabels: PdfSemanticLabels(
    toggleSidebar: 'Afficher / masquer le panneau',
    pageLabel: (page, total) => 'Page $page sur $total',
    zoomHint: 'Pincez pour zoomer',
    loadingDocument: 'Chargement du document…',
    loadingThumbnails: 'Chargement des miniatures…',
    thumbnailList: 'Miniatures des pages',
    loadingThumbnailsError: 'Erreur de chargement des miniatures',
    loadingDocumentError: 'Erreur de chargement du document',
  ),
),

Dependencies #

  • pdfx — PDF rendering
  • http — Remote PDF download
  • lottie — Pinch-to-zoom hint animation

Contributing #

Contributions are welcome! Feel free to open an issue or submit a pull request.

License #

This package is distributed under the MIT License. See the LICENSE file for more information.


About UserAgents #

UserAgents is a company specialized in developing high-quality mobile applications with Flutter using Lean & Agile methodologies. If you need a solution tailored to your requirements, don't hesitate to contact us via email or through our contact form!

We'd be delighted to discuss your projects and support you in your development journey.

5
likes
160
points
257
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

A PDF viewer with enhanced features including a thumbnail sidebar for easy navigation.

Repository (GitHub)
View/report issues

License

MIT (license)

Dependencies

flutter, http, lottie, pdfx

More

Packages that depend on pdf_viewer_plus