pdf_thumbnail 0.1.6+1 copy "pdf_thumbnail: ^0.1.6+1" to clipboard
pdf_thumbnail: ^0.1.6+1 copied to clipboard

Thumbnail viewer for PDF files. Supports Android and iOS. Simply add widget and give the file path.

Pdf Thumbnail #

style: very good analysis Powered by Mason License: MIT

Thumbnail viewer for pdfs

Installation πŸ’» #

❗ In order to start using Pdf Thumbnail you must have the Flutter SDK installed on your machine.

Add pdf_thumbnail to your pubspec.yaml:

dependencies:
  pdf_thumbnail:

Install it:

flutter packages get

Example ✍️ #

 return Stack(
              children: [
                SizedBox(
                  height: MediaQuery.of(context).size.height,
                  width: MediaQuery.of(context).size.width,
                  child: PdfViewer(
                    filePath: snapshot.data!.path,
                  ),
                ),
                if (showThumbnail)
                  Positioned(
                    bottom: 0,
                    width: MediaQuery.of(context).size.width,
                    // Here's the thumbnail widget.
                    child: PdfThumbnail.fromFile(snapshot.data!.path),
                  ),
              ],
            );

There is a detailed example app in the repo, but I've deleted iOS and Android folders. Simple go to example folder, and run flutter create . inside the folder to add missing native files for the example app.

Demo

gif

Caching ⏲ #

I left caching part unopinionated to keep the package simple. Just create your own class from ImageThumbnailCacher and implement the read/write methods. Holding images as Uint8List, so Map<int, Uint8List> is what's need to be written to and read from the cache. It maps page numbers to the images.

class ThumbnailCacher implements ImageThumbnailCacher {
  @override
  Future<PageToImage?> read(String id) async {
    return api.localStorage.readThumbnails(id);
  }

  @override
  Future<bool> write({required String id, required PageToImage map}) {
    return api.localStorage.writeThumbnails(id: id, map: map);
  }
}

I'm using Hive to cache.

Roadmap πŸ—ΊοΈ #

  • Customization for colors, decoration etc.
  • onTap callback and page number.
  • Caching.
  • Different layouts and scroll axises.
  • Lazy loading.
37
likes
140
pub points
89%
popularity

Publisher

verified publishermirkan.dev

Thumbnail viewer for PDF files. Supports Android and iOS. Simply add widget and give the file path.

Repository (GitHub)
View/report issues

Documentation

Documentation
API reference

License

MIT (LICENSE)

Dependencies

flutter, pdfx

More

Packages that depend on pdf_thumbnail