pdf_reading_tracker 3.0.0 copy "pdf_reading_tracker: ^3.0.0" to clipboard
pdf_reading_tracker: ^3.0.0 copied to clipboard

A production-ready Flutter PDF reader package powered by Syncfusion PDF Viewer. Features reading progress tracking, continue reading, bookmarks, highlights, text-linked notes, annotation persistence, [...]

pdf_reading_tracker #

A production-ready Flutter PDF reader package powered by Syncfusion PDF Viewer.

Track reading progress, continue reading from where users left off, manage bookmarks, create annotations, attach text-linked notes, import PDFs from device storage, merge and split PDFs, and persist everything locally using SQLite.

Designed for educational, productivity, and document-centric applications.


Features #

PDF Reading #

  • High-quality PDF rendering using Syncfusion PDF Viewer
  • Reading Progress Tracking
  • Continue Reading
  • Recent PDFs
  • Jump To Page
  • Multi-PDF Support
  • Double-Tap Zoom
  • Vertical and Horizontal Navigation
  • Persistent Reading Position
  • Built-in PDF Text Search
  • Search Navigation
  • Match Highlighting

Bookmarks #

  • Add Bookmarks
  • Remove Bookmarks
  • Bookmark Notes
  • Bookmark Persistence
  • SQLite-backed Storage

Annotations #

  • Highlight
  • Underline
  • Strikethrough
  • Squiggly
  • Annotation Persistence
  • Annotation Restoration After Restart

Notes #

  • Text-linked Notes
  • Edit Notes
  • Delete Notes
  • Jump To Note
  • Persistent Storage

User PDF Management #

  • Import PDFs From Device Storage
  • Persistent PDF Library
  • Continue Reading Dashboard
  • Recent PDFs Dashboard
  • Automatic Restoration After App Restart

PDF Operations #

  • Merge Multiple PDFs
  • Split PDFs Into Smaller Documents
  • Typed Exception Handling
  • Syncfusion PDF Processing

Storage #

  • SQLite Persistence
  • Offline First
  • Lightweight Database
  • Persistent PDF Storage
  • Temporary Cache Cleanup
  • Storage Efficient Architecture

Platform Support #

Android iOS

Installation #

dependencies:
  pdf_reading_tracker: ^3.0.0

Import #

import 'package:pdf_reading_tracker/pdf_reading_tracker.dart';

Quick Start #

PdfReadingTrackerViewer(
  pdfId: 'clean_architecture',
  pdfTitle: 'Clean Architecture',
  assetPath: 'assets/pdfs/clean_architecture.pdf',
)

Reader Widget #

PdfReadingTrackerViewer(
  pdfId: 'flutter_notes',
  pdfTitle: 'Flutter Notes',
  assetPath: 'assets/pdfs/flutter_notes.pdf',

  showAppBar: true,
  showBottomBar: true,
  showBookmarkFab: true,

  enableSearch: true,
  enableHighlight: true,

  swipeHorizontal: false,
  enableDoubleTap: true,
)

Reading Progress API #

Save Progress #

await PdfReadingTracker.saveProgress(
  ReadingProgress.create(
    pdfId: 'flutter_notes',
    currentPage: 25,
    totalPages: 100,
    title: 'Flutter Notes',
  ),
);

Get Progress #

final progress =
    await PdfReadingTracker.getProgress('flutter_notes');

Get Recently Read #

final recent =
    await PdfReadingTracker.getRecentlyRead();

Bookmark API #

Add Bookmark #

await PdfReadingTracker.addBookmark(
  Bookmark.create(
    pdfId: 'flutter_notes',
    page: 25,
    note: 'Important topic',
  ),
);

Get Bookmarks #

final bookmarks =
    await PdfReadingTracker.getBookmarks('flutter_notes');

Highlight API #

final highlights =
    await PdfReadingTracker.getHighlights('flutter_notes');

Notes API #

final notes =
    await PdfReadingTracker.getNotes('flutter_notes');

PDF Import #

final picked =
    await PdfPickerService.pickPdf();

PDF Merge #

final mergedPdf =
    await PdfMergeService.merge(
      inputPaths: [
        pdf1,
        pdf2,
        pdf3,
      ],
    );

PDF Split #

final files =
    await PdfSplitService.split(
      pdfPath: sourcePdf,
      pagesPerFile: 25,
    );

Example Application #

The package includes a complete example application demonstrating:

  • PDF Reader
  • Reading Progress
  • Continue Reading
  • Recent PDFs
  • Bookmarks
  • Notes
  • Highlights
  • PDF Import
  • PDF Merge
  • PDF Split

Architecture #

  • Syncfusion PDF Viewer
  • Syncfusion PDF Processing
  • SQLite Persistence
  • Offline-First Design
  • Service-Based Architecture
  • Production-Ready Structure

Known Limitations #

  • Reading progress currently relies on Syncfusion page-change events.
  • Dominant page detection is planned for a future release.

License #

MIT License

1
likes
130
points
414
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

A production-ready Flutter PDF reader package powered by Syncfusion PDF Viewer. Features reading progress tracking, continue reading, bookmarks, highlights, text-linked notes, annotation persistence, SQLite storage, PDF merge and split operations.

Repository (GitHub)
View/report issues

Topics

#pdf #pdf-viewer #pdf-reader #annotations #sqlite

License

MIT (license)

Dependencies

file_picker, flutter, path, path_provider, sqflite, syncfusion_flutter_pdf, syncfusion_flutter_pdfviewer

More

Packages that depend on pdf_reading_tracker