pdf_reading_tracker 3.0.0
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
Search #
- 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