react-native-pdf-jsi 2.2.6 → 2.2.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -35,6 +35,17 @@ Starting November 1, 2025, Google Play will require apps to support 16KB page si
35
35
  - ✅ **Google Play Approved** - Meets all current and future requirements
36
36
  - ✅ **Drop-in Replacement** - Easy migration from existing libraries
37
37
 
38
+ ## 🎉 Version 2.2.7 - iOS Codegen Fix & New Architecture Support!
39
+
40
+ **Critical fix for React Native 0.79+ compatibility and iOS codegen integration!**
41
+
42
+ ### 🚀 **What's New in v2.2.7:**
43
+ - **🔧 iOS Component Provider** - Added ios.componentProvider to codegenConfig for React Native 0.79+ compatibility
44
+ - **✅ Codegen Compliance** - Resolved [DEPRECATED] warning during pod install
45
+ - **✅ New Architecture Ready** - Full compatibility with React Native's New Architecture
46
+ - **✅ Podspec Fix** - Corrected podspec filename reference in package.json
47
+ - **✅ Future-Proof** - Ensures compatibility with future React Native versions
48
+
38
49
  ## 🎉 Version 2.2.6 - Enhanced iOS JSI Integration!
39
50
 
40
51
  **Major improvements to iOS JSI functionality and method forwarding!**
@@ -188,6 +199,161 @@ Starting November 1, 2025, Google Play will require apps to support 16KB page si
188
199
  - ✅ **iOS** (enhanced bridge mode with smart caching and progressive loading)
189
200
  - ✅ **Windows** (standard bridge mode)
190
201
 
202
+ ---
203
+
204
+ ## 🎬 Pro Features - Coming Soon!
205
+
206
+ > **Production-ready PDF manipulation features launching in the next few weeks!**
207
+
208
+ ### Watch the Demo
209
+
210
+ [![Pro Features Demo](https://img.youtube.com/vi/OmCUq9wLoHo/maxresdefault.jpg)](https://www.youtube.com/shorts/OmCUq9wLoHo)
211
+
212
+ **[▶️ Watch on YouTube Shorts (60 seconds)](https://www.youtube.com/shorts/OmCUq9wLoHo)**
213
+
214
+ *See bookmark management, export to images, PDF operations, and reading analytics in action!*
215
+
216
+ ### 🚀 Features Launching Soon
217
+
218
+ #### 📚 Advanced Bookmark Management
219
+ - ✅ Create bookmarks with custom names, colors (10 options), and notes
220
+ - ✅ Swipeable list with tap-to-navigate functionality
221
+ - ✅ Current page highlighting with visual indicators
222
+ - ✅ Swipe-to-delete with confirmation dialogs
223
+ - ✅ Persistent storage with AsyncStorage
224
+ - ✅ Jump directly to any bookmarked page
225
+ - ✅ Edit bookmarks with full metadata support
226
+
227
+ #### 🖼️ Export to Images
228
+ - ✅ Export PDF pages to PNG or JPEG formats
229
+ - ✅ Three quality levels: High (90%), Medium (75%), Low (50%)
230
+ - ✅ Single page or batch export with progress tracking
231
+ - ✅ Automatic download to public storage (MediaStore API)
232
+ - ✅ Android notifications with "Open Folder" action
233
+ - ✅ Timestamped filenames to prevent overwrites
234
+ - ✅ Share single or multiple exported files
235
+ - ✅ Files immediately visible in file manager
236
+
237
+ #### ✂️ PDF Operations
238
+ - ✅ Split PDF into multiple parts with custom page ranges
239
+ - ✅ Extract specific pages to create new PDF
240
+ - ✅ Merge multiple PDFs (framework ready)
241
+ - ✅ All operations with real-time progress indicators
242
+ - ✅ Auto-save to Downloads/[YourApp] folder
243
+ - ✅ Success dialogs with "Open Folder" and "Share" buttons
244
+ - ✅ Proper file naming with timestamps
245
+
246
+ #### 📊 Reading Analytics
247
+ - ✅ Session tracking (start/end times, duration)
248
+ - ✅ Total time spent reading per PDF
249
+ - ✅ Pages read counter and progress percentage
250
+ - ✅ Reading speed calculation (pages/minute)
251
+ - ✅ Complete session history
252
+ - ✅ AsyncStorage persistence across app restarts
253
+ - ✅ Beautiful analytics panel with real-time stats
254
+
255
+ #### 🔧 Technical Excellence
256
+ - ✅ **JSI Integration** - Leverages existing JSI for native performance
257
+ - ✅ **MediaStore API** - Proper Android file management (Android 10+)
258
+ - ✅ **Runtime Permissions** - Handles Android 13+ notification permissions
259
+ - ✅ **Gesture-Based UI** - PanResponder for swipe gestures
260
+ - ✅ **Material Design** - Professional UI components
261
+ - ✅ **Error Handling** - Comprehensive error recovery
262
+ - ✅ **TypeScript Support** - Full type definitions included
263
+ - ✅ **Production Logging** - Debug-friendly with detailed logs
264
+
265
+ ### 💰 Pricing
266
+
267
+ | Plan | Target Users | India Price | Global Price | What's Included |
268
+ |------|--------------|-------------|--------------|-----------------|
269
+ | **Free** | Everyone | ₹0 | $0 | ✅ Basic PDF viewing<br>✅ All core features<br>✅ Community support |
270
+ | **Indie** | Freelancers, Students | **₹2,999/year**<br>($36/year) | **$99/year** | ✅ All Pro features<br>✅ 1 app license<br>✅ Unlimited updates<br>✅ Email support<br>✅ Perfect for freelance projects |
271
+ | **Startup** | Small Teams (2-10 devs) | **₹9,999/year**<br>($120/year) | **$299/year** | ✅ All Pro features<br>✅ Up to 5 apps<br>✅ Priority email support<br>✅ Team license<br>✅ Quarterly feature updates |
272
+ | **Business** | Companies (10+ devs) | **₹24,999/year**<br>($300/year) | **$799/year** | ✅ All Pro features<br>✅ Unlimited apps<br>✅ Priority support (24h response)<br>✅ Custom feature development<br>✅ Source code access option |
273
+
274
+ **🇮🇳 Regional Pricing Available** - Special rates for India, Southeast Asia, Latin America, and emerging markets.
275
+
276
+ **🎁 Launch Offer:** First 50 customers get **30% OFF** any plan! Use code `EARLYBIRD30` at checkout.
277
+
278
+ ### 🎯 Early Access
279
+
280
+ **🚀 Launching in the next few weeks!**
281
+
282
+ Want early access or have questions about Pro features?
283
+
284
+ - 📧 **Email:** punithm300@gmail.com (Subject: "Pro Features Early Access")
285
+ - ⭐ **Star this repo** to get notified when we launch
286
+ - 🔔 **Watch** the repository for release announcements
287
+ - 📦 **GitHub:** [react-native-enhanced-pdf](https://github.com/126punith/react-native-enhanced-pdf)
288
+ - 📥 **NPM:** [react-native-pdf-jsi](https://www.npmjs.com/package/react-native-pdf-jsi)
289
+
290
+ ### ✨ Why Choose Pro Features?
291
+
292
+ > **Unlike other React Native PDF libraries**, we offer true production-grade features with professional UX patterns, proper file management, and enterprise-level performance.
293
+
294
+ **What makes it different:**
295
+
296
+ | Feature | react-native-pdf-jsi Pro | Other Libraries |
297
+ |---------|--------------------------|-----------------|
298
+ | **File Management** | MediaStore API (files visible immediately) | Cache only (files hidden) |
299
+ | **Bookmarks** | Colors, notes, swipeable list | Basic or none |
300
+ | **Export** | PNG/JPEG with quality control | Limited or none |
301
+ | **PDF Operations** | Split, extract, merge with UI | None |
302
+ | **Analytics** | Full session tracking & history | Page count only |
303
+ | **Notifications** | Native Android notifications | None |
304
+ | **Gestures** | Swipe-to-delete, tap-to-navigate | None |
305
+ | **Share** | Batch sharing with dialogs | Basic or none |
306
+
307
+ **Technical Advantages:**
308
+ - 🚀 **Up to 80x faster** with existing JSI integration
309
+ - 📱 **Proper file storage** - Files appear in Downloads immediately
310
+ - 🎨 **Professional UI** - Material Design with animations
311
+ - 🔔 **System integration** - Notifications, intents, MediaStore
312
+ - 💪 **Battle-tested** - Production-ready code
313
+ - 📖 **Complete docs** - Integration guides included
314
+
315
+ ### 🎬 Feature Highlights from Demo
316
+
317
+ **What you'll see in the [60-second demo](https://www.youtube.com/shorts/OmCUq9wLoHo):**
318
+
319
+ 1. **Bookmark System** (0:00-0:20)
320
+ - Create bookmark with name, color & notes
321
+ - Swipeable list showing all bookmarks
322
+ - Tap to jump to page 4 → 11 instantly
323
+ - Swipe left to delete
324
+
325
+ 2. **Export to Images** (0:20-0:35)
326
+ - Export page as PNG (high quality)
327
+ - Android notification appears
328
+ - File visible in Downloads folder
329
+ - Share exported image
330
+
331
+ 3. **PDF Operations** (0:35-0:50)
332
+ - Split PDF into 2 parts (pages 1-10, 11-21)
333
+ - Files automatically downloaded
334
+ - "Open Folder" button works
335
+
336
+ 4. **Reading Analytics** (0:50-1:00)
337
+ - Session tracking active
338
+ - Progress percentage shown
339
+ - Reading stats displayed
340
+
341
+ ### 📢 Stay Updated
342
+
343
+ **Coming Soon:**
344
+ - 📖 Comprehensive documentation
345
+ - 🎥 Tutorial videos
346
+ - 📱 Example app repository
347
+ - 🔌 Integration templates
348
+ - 💬 Discord community
349
+
350
+ **Follow the journey:**
351
+ - 🐦 Twitter: Share your feedback!
352
+ - ⭐ GitHub Stars help us reach more developers
353
+ - 📧 Direct contact: punithm300@gmail.com
354
+
355
+ ---
356
+
191
357
  ## 🛠 Installation
192
358
 
193
359
  ```bash
@@ -270,7 +436,7 @@ react-native link react-native-pdf-jsi
270
436
 
271
437
  ### Windows installation
272
438
  <details>
273
- <sumary>Windows details</summary>
439
+ <summary>Windows details</summary>
274
440
 
275
441
  - Open your solution in Visual Studio 2019 (eg. `windows\yourapp.sln`)
276
442
  - Right-click Solution icon in Solution Explorer > Add > Existing Project...
@@ -813,10 +979,10 @@ This package is not available in the [Expo Go](https://expo.dev/client) app. Lea
813
979
  <summary>FAQ details</summary>
814
980
 
815
981
  Q1. After installation and running, I can not see the pdf file.
816
- A1: maybe you forgot to excute ```react-native link``` or it does not run correctly.
982
+ A1: maybe you forgot to execute ```react-native link``` or it does not run correctly.
817
983
  You can add it manually. For detail you can see the issue [`#24`](https://github.com/wonday/react-native-pdf/issues/24) and [`#2`](https://github.com/wonday/react-native-pdf/issues/2)
818
984
 
819
- Q2. When running, it shows ```'Pdf' has no propType for native prop RCTPdf.acessibilityLabel of native type 'String'```
985
+ Q2. When running, it shows ```'Pdf' has no propType for native prop RCTPdf.accessibilityLabel of native type 'String'```
820
986
  A2. Your react-native version is too old, please upgrade it to 0.47.0+ see also [`#39`](https://github.com/wonday/react-native-pdf/issues/39)
821
987
 
822
988
  Q3. When I run the example app I get a white/gray screen / the loading bar isn't progressing .
@@ -932,7 +1098,21 @@ const Pdf = PdfModule.default;
932
1098
 
933
1099
  ## 📝 Changelog
934
1100
 
935
- ### v2.2.6 (2025) - Latest ✅ ENHANCED IOS JSI INTEGRATION
1101
+ ### v2.2.7 (2025) - Latest ✅ IOS CODEGEN FIX & NEW ARCHITECTURE SUPPORT
1102
+
1103
+ #### 🔧 **iOS Codegen & New Architecture Fixes**
1104
+ - **Component Provider**: Added `ios.componentProvider: "RNPDFPdfView"` to codegenConfig in package.json
1105
+ - **Codegen Compliance**: Resolved React Native 0.79+ deprecation warning: "react-native-pdf-jsi should add the 'ios.componentProvider' property in their codegenConfig"
1106
+ - **Podspec Reference**: Fixed podspec filename from `react-native-pdf.podspec` to `react-native-pdf-jsi.podspec` in files array
1107
+ - **New Architecture Ready**: Full compatibility with React Native's New Architecture and Fabric components
1108
+
1109
+ #### 📊 **Compatibility Improvements**
1110
+ - **React Native 0.79+**: Full support for latest React Native versions
1111
+ - **Pod Install Fix**: No more deprecation warnings during `pod install`
1112
+ - **Codegen Integration**: Proper iOS component provider configuration for codegen system
1113
+ - **Future-Proof**: Ensures compatibility with upcoming React Native releases
1114
+
1115
+ ### v2.2.6 (2025) - ✅ ENHANCED IOS JSI INTEGRATION
936
1116
 
937
1117
  #### 🚀 **iOS JSI Enhancements**
938
1118
  - **JSI Method Declarations**: Added comprehensive JSI method declarations in PDFJSIManager.h
@@ -1445,10 +1625,10 @@ export default function LazyLoadingExample() {
1445
1625
  | style | object | {backgroundColor:"#eee"} | support normal view style, you can use this to set border/spacing color... | ✔ | ✔ | ✔ | <3.0
1446
1626
  | progressContainerStyle | object | {backgroundColor:"#eee"} | support normal view style, you can use this to set border/spacing color... | ✔ | ✔ | ✔ | 6.9.0 |
1447
1627
  | renderActivityIndicator | (progress) => Component | <ProgressBar/> | when loading show it as an indicator, you can use your component | ✔ | ✔ | ✖ | <3.0 |
1448
- | enableAntialiasing | bool | true | improve rendering a little bit on low-res screens, but maybe course some problem on Android 4.4, so add a switch | ✖ | ✔ | ✖ | <3.0 |
1628
+ | enableAntialiasing | bool | true | improve rendering a little bit on low-res screens, but may cause some problems on Android 4.4, so add a switch | ✖ | ✔ | ✖ | <3.0 |
1449
1629
  | enablePaging | bool | false | only show one page in screen | ✔ | ✔ | ✔ | 5.0.1 |
1450
1630
  | enableRTL | bool | false | scroll page as "page3, page2, page1" | ✔ | ✖ | ✔ | 5.0.1 |
1451
- | enableAnnotationRendering | bool | true | enable rendering annotation, notice:iOS only support initial setting,not support realtime changing | ✔ | ✔ | ✖ | 5.0.3 |
1631
+ | enableAnnotationRendering | bool | true | enable rendering annotation, notice: iOS only supports initial setting, not real-time changing | ✔ | ✔ | ✖ | 5.0.3 |
1452
1632
  | enableDoubleTapZoom | bool | true | Enable double tap to zoom gesture | ✔ | ✔ | ✖ | 6.8.0 |
1453
1633
  | trustAllCerts | bool | true | Allow connections to servers with self-signed certification | ✔ | ✔ | ✖ | 6.0.? |
1454
1634
  | singlePage | bool | false | Only show first page, useful for thumbnail views | ✔ | ✔ | ✔ | 6.2.1 |
@@ -1464,7 +1644,7 @@ export default function LazyLoadingExample() {
1464
1644
 
1465
1645
  | parameter | Description | default | iOS | Android | Windows |
1466
1646
  | ------------ | ----------- | ------- | --- | ------- | ------- |
1467
- | uri | pdf source, see the forllowing for detail.| required | ✔ | ✔ | ✔ |
1647
+ | uri | pdf source, see the following for detail.| required | ✔ | ✔ | ✔ |
1468
1648
  | cache | use cache or not | false | ✔ | ✔ | ✖ |
1469
1649
  | cacheFileName | specific file name for cached pdf file | SHA1(uri) result | ✔ | ✔ | ✖ |
1470
1650
  | expiration | cache file expired seconds (0 is not expired) | 0 | ✔ | ✔ | ✖ |
@@ -1566,7 +1746,5 @@ For issues and questions:
1566
1746
 
1567
1747
  *Transform your PDF viewing experience with enterprise-grade performance and reliability.*
1568
1748
 
1569
- **v2.2.6 - Enhanced iOS JSI Integration**
1570
- **Copyright (c) 2025-present, Punith M (punithm300@gmail.com). Enhanced PDF JSI Integration. All rights reserved.**
1571
-
1572
- *Original work Copyright (c) 2017-present, Wonday (@wonday.org). All rights reserved.*
1749
+ **v2.2.7 - iOS Codegen Fix & New Architecture Support**
1750
+ **Copyright (c) 2025-present, Punith M (punithm300@gmail.com). All rights reserved.**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-pdf-jsi",
3
- "version": "2.2.6",
3
+ "version": "2.2.8",
4
4
  "summary": "High-performance React Native PDF viewer with JSI acceleration - up to 80x faster than traditional bridge",
5
5
  "description": "🚀 Ultra-fast React Native PDF viewer with JSI (JavaScript Interface) integration for maximum performance. Features lazy loading, smart caching, progressive loading, and zero-bridge overhead operations. Perfect for large PDF files with 30-day persistent cache and advanced memory optimization. Google Play 16KB page size compliant for Android 15+. Supports iOS, Android, and Windows platforms.",
6
6
  "main": "index.js",
@@ -58,7 +58,7 @@
58
58
  "url": "https://github.com/126punith"
59
59
  },
60
60
  "license": "MIT",
61
- "homepage": "https://github.com/126punith/react-native-enhanced-pdf",
61
+ "homepage": "https://github.com/126punith/react-native-enhanced-pdf",
62
62
  "bugs": {
63
63
  "url": "https://github.com/126punith/react-native-enhanced-pdf/issues"
64
64
  },
@@ -90,7 +90,7 @@
90
90
  "PdfView.js",
91
91
  "PdfViewFlatList.js",
92
92
  "PinchZoomView.js",
93
- "react-native-pdf.podspec",
93
+ "react-native-pdf-jsi.podspec",
94
94
  "fabric/",
95
95
  "README_JSI.md",
96
96
  "INTEGRATION_GUIDE.md"
@@ -100,7 +100,10 @@
100
100
  "type": "components",
101
101
  "jsSrcsDir": "./fabric",
102
102
  "android": {
103
- "javaPackageName": "org.wonday.pdf"
103
+ "javaPackageName": "org.wonday.pdf"
104
+ },
105
+ "ios": {
106
+ "componentProvider": "RNPDFPdfView"
104
107
  }
105
- }
108
+ }
106
109
  }
@@ -0,0 +1,31 @@
1
+ # encoding: utf-8
2
+ require 'json'
3
+
4
+ package = JSON.parse(File.read(File.join(__dir__, 'package.json'), encoding: 'utf-8'))
5
+
6
+ fabric_enabled = ENV['RCT_NEW_ARCH_ENABLED'] == '1'
7
+
8
+ Pod::Spec.new do |s|
9
+ s.name = package['name']
10
+ s.version = package['version']
11
+ s.summary = package['summary']
12
+ s.description = package['description']
13
+ s.author = { package['author']['name'] => package['author']['email'] }
14
+ s.license = package['license']
15
+ s.homepage = package['homepage']
16
+ s.source = { :git => 'https://github.com/126punith/react-native-pdf-enhanced.git', :tag => "v#{s.version}" }
17
+ s.requires_arc = true
18
+ s.framework = "PDFKit"
19
+
20
+ if fabric_enabled
21
+ s.platforms = { ios: '11.0', tvos: '11.0' }
22
+ s.source_files = 'ios/**/*.{h,m,mm,cpp}'
23
+ s.requires_arc = true
24
+ install_modules_dependencies(s)
25
+
26
+ else
27
+ s.platform = :ios, '8.0'
28
+ s.source_files = 'ios/**/*.{h,m,mm}'
29
+ s.dependency 'React-Core'
30
+ end
31
+ end