@amafil/react-native-pdf-toolkit 1.1.17 → 1.1.18

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.
Files changed (134) hide show
  1. package/README.md +57 -0
  2. package/android/.gradle/8.5/executionHistory/executionHistory.bin +0 -0
  3. package/android/.gradle/8.5/executionHistory/executionHistory.lock +0 -0
  4. package/android/.gradle/8.5/fileHashes/fileHashes.bin +0 -0
  5. package/android/.gradle/8.5/fileHashes/fileHashes.lock +0 -0
  6. package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  7. package/android/.gradle/buildOutputCleanup/outputFiles.bin +0 -0
  8. package/android/.gradle/file-system.probe +0 -0
  9. package/android/build/.transforms/2892d280277a194daf04e3af971b529e/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/facebook/react/viewmanagers/RNPDFPdfViewManagerDelegate.dex +0 -0
  10. package/android/build/.transforms/2892d280277a194daf04e3af971b529e/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/facebook/react/viewmanagers/RNPDFPdfViewManagerInterface.dex +0 -0
  11. package/android/build/.transforms/2892d280277a194daf04e3af971b529e/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/org/wonday/pdf/PdfManager.dex +0 -0
  12. package/android/build/.transforms/2892d280277a194daf04e3af971b529e/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/org/wonday/pdf/PdfView$1.dex +0 -0
  13. package/android/build/.transforms/2892d280277a194daf04e3af971b529e/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/org/wonday/pdf/PdfView$2.dex +0 -0
  14. package/android/build/.transforms/2892d280277a194daf04e3af971b529e/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/org/wonday/pdf/PdfView$3.dex +0 -0
  15. package/android/build/.transforms/2892d280277a194daf04e3af971b529e/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/org/wonday/pdf/PdfView$AnnotationOverlayView$1.dex +0 -0
  16. package/android/build/.transforms/2892d280277a194daf04e3af971b529e/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/org/wonday/pdf/PdfView$AnnotationOverlayView$AnnotationHit.dex +0 -0
  17. package/android/build/.transforms/2892d280277a194daf04e3af971b529e/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/org/wonday/pdf/PdfView$AnnotationOverlayView$AnnotationSelectionHit.dex +0 -0
  18. package/android/build/.transforms/2892d280277a194daf04e3af971b529e/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/org/wonday/pdf/PdfView$AnnotationOverlayView.dex +0 -0
  19. package/android/build/.transforms/2892d280277a194daf04e3af971b529e/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/org/wonday/pdf/PdfView$PageRenderInfo.dex +0 -0
  20. package/android/build/.transforms/2892d280277a194daf04e3af971b529e/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/org/wonday/pdf/PdfView.dex +0 -0
  21. package/android/build/.transforms/2892d280277a194daf04e3af971b529e/transformed/bundleLibRuntimeToDirDebug/desugar_graph.bin +0 -0
  22. package/android/build/.transforms/e40f3b884607647e8beb6dabe8165962/transformed/classes/classes_dex/classes.dex +0 -0
  23. package/android/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNPDFPdfViewManagerDelegate.java +30 -0
  24. package/android/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNPDFPdfViewManagerInterface.java +10 -0
  25. package/android/build/generated/source/codegen/jni/react/renderer/components/rnpdf/Props.cpp +35 -0
  26. package/android/build/generated/source/codegen/jni/react/renderer/components/rnpdf/Props.h +7 -0
  27. package/android/build/generated/source/codegen/schema.json +1 -1
  28. package/android/build/intermediates/compile_library_classes_jar/debug/bundleLibCompileToJarDebug/classes.jar +0 -0
  29. package/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties +1 -1
  30. package/android/build/intermediates/incremental/mergeDebugAssets/merger.xml +1 -1
  31. package/android/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml +1 -1
  32. package/android/build/intermediates/incremental/mergeDebugShaders/merger.xml +1 -1
  33. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/facebook/react/viewmanagers/RNPDFPdfViewManagerDelegate.class +0 -0
  34. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/facebook/react/viewmanagers/RNPDFPdfViewManagerInterface.class +0 -0
  35. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/org/wonday/pdf/PdfManager.class +0 -0
  36. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/org/wonday/pdf/PdfView$1.class +0 -0
  37. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/org/wonday/pdf/PdfView$2.class +0 -0
  38. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/org/wonday/pdf/PdfView$3.class +0 -0
  39. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/org/wonday/pdf/PdfView$AnnotationOverlayView$1.class +0 -0
  40. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/org/wonday/pdf/PdfView$AnnotationOverlayView$AnnotationHit.class +0 -0
  41. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/org/wonday/pdf/PdfView$AnnotationOverlayView$AnnotationSelectionHit.class +0 -0
  42. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/org/wonday/pdf/PdfView$AnnotationOverlayView.class +0 -0
  43. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/org/wonday/pdf/PdfView$PageRenderInfo.class +0 -0
  44. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/org/wonday/pdf/PdfView.class +0 -0
  45. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/facebook/react/viewmanagers/RNPDFPdfViewManagerDelegate.class +0 -0
  46. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/facebook/react/viewmanagers/RNPDFPdfViewManagerInterface.class +0 -0
  47. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/org/wonday/pdf/PdfManager.class +0 -0
  48. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/org/wonday/pdf/PdfView$1.class +0 -0
  49. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/org/wonday/pdf/PdfView$2.class +0 -0
  50. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/org/wonday/pdf/PdfView$3.class +0 -0
  51. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/org/wonday/pdf/PdfView$AnnotationOverlayView$1.class +0 -0
  52. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/org/wonday/pdf/PdfView$AnnotationOverlayView$AnnotationHit.class +0 -0
  53. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/org/wonday/pdf/PdfView$AnnotationOverlayView$AnnotationSelectionHit.class +0 -0
  54. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/org/wonday/pdf/PdfView$AnnotationOverlayView.class +0 -0
  55. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/org/wonday/pdf/PdfView$PageRenderInfo.class +0 -0
  56. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/org/wonday/pdf/PdfView.class +0 -0
  57. package/android/build/intermediates/runtime_library_classes_jar/debug/bundleLibRuntimeToJarDebug/classes.jar +0 -0
  58. package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/PdfManager.class.uniqueId7 +0 -0
  59. package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/{PdfView$1.class.uniqueId0 → PdfView$1.class.uniqueId3} +0 -0
  60. package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/PdfView$2.class.uniqueId5 +0 -0
  61. package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/PdfView$AnnotationOverlayView$1.class.uniqueId6 +0 -0
  62. package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/PdfView$AnnotationOverlayView$AnnotationHit.class.uniqueId1 +0 -0
  63. package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/PdfView$AnnotationOverlayView$AnnotationSelectionHit.class.uniqueId9 +0 -0
  64. package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/PdfView$AnnotationOverlayView.class.uniqueId8 +0 -0
  65. package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/PdfView$PageRenderInfo.class.uniqueId0 +0 -0
  66. package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/PdfView.class.uniqueId2 +0 -0
  67. package/android/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin +0 -0
  68. package/android/src/main/java/org/wonday/pdf/PdfManager.java +56 -0
  69. package/android/src/main/java/org/wonday/pdf/PdfView.java +1249 -0
  70. package/android/src/paper/java/com/facebook/react/viewmanagers/RNPDFPdfViewManagerDelegate.java +30 -0
  71. package/android/src/paper/java/com/facebook/react/viewmanagers/RNPDFPdfViewManagerInterface.java +10 -0
  72. package/annotationDocumentUtils.js +74 -0
  73. package/fabric/RNPDFPdfNativeComponent.js +18 -3
  74. package/index.d.ts +103 -1
  75. package/index.js +112 -0
  76. package/index.js.flow +73 -0
  77. package/ios/RNPDFPdf/RNPDFPdfView.h +11 -0
  78. package/ios/RNPDFPdf/RNPDFPdfView.mm +1414 -55
  79. package/ios/RNPDFPdf/RNPDFPdfViewManager.mm +37 -0
  80. package/package.json +6 -5
  81. package/android/build/.transforms/3337b950908a4f6985ba400cb8386b0b/results.bin +0 -1
  82. package/android/build/.transforms/3337b950908a4f6985ba400cb8386b0b/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/facebook/react/viewmanagers/RNPDFPdfViewManagerDelegate.dex +0 -0
  83. package/android/build/.transforms/3337b950908a4f6985ba400cb8386b0b/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/facebook/react/viewmanagers/RNPDFPdfViewManagerInterface.dex +0 -0
  84. package/android/build/.transforms/3337b950908a4f6985ba400cb8386b0b/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/org/wonday/pdf/BuildConfig.dex +0 -0
  85. package/android/build/.transforms/3337b950908a4f6985ba400cb8386b0b/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/org/wonday/pdf/PdfManager.dex +0 -0
  86. package/android/build/.transforms/3337b950908a4f6985ba400cb8386b0b/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/org/wonday/pdf/PdfView$1.dex +0 -0
  87. package/android/build/.transforms/3337b950908a4f6985ba400cb8386b0b/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/org/wonday/pdf/PdfView$2.dex +0 -0
  88. package/android/build/.transforms/3337b950908a4f6985ba400cb8386b0b/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/org/wonday/pdf/PdfView$3.dex +0 -0
  89. package/android/build/.transforms/3337b950908a4f6985ba400cb8386b0b/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/org/wonday/pdf/PdfView.dex +0 -0
  90. package/android/build/.transforms/3337b950908a4f6985ba400cb8386b0b/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/org/wonday/pdf/RNPDFPackage.dex +0 -0
  91. package/android/build/.transforms/3337b950908a4f6985ba400cb8386b0b/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/org/wonday/pdf/events/TopChangeEvent.dex +0 -0
  92. package/android/build/.transforms/3337b950908a4f6985ba400cb8386b0b/transformed/bundleLibRuntimeToDirDebug/desugar_graph.bin +0 -0
  93. package/android/build/.transforms/787b9137f14dcc9eebbb21ac62a7be22/results.bin +0 -1
  94. package/android/build/.transforms/787b9137f14dcc9eebbb21ac62a7be22/transformed/classes/classes_dex/classes.dex +0 -0
  95. package/android/build/.transforms/79ca1220a602ed0c9c23366e0e92a6d1/results.bin +0 -1
  96. package/android/build/.transforms/79ca1220a602ed0c9c23366e0e92a6d1/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/facebook/react/viewmanagers/RNPDFPdfViewManagerDelegate.dex +0 -0
  97. package/android/build/.transforms/79ca1220a602ed0c9c23366e0e92a6d1/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/facebook/react/viewmanagers/RNPDFPdfViewManagerInterface.dex +0 -0
  98. package/android/build/.transforms/79ca1220a602ed0c9c23366e0e92a6d1/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/org/wonday/pdf/BuildConfig.dex +0 -0
  99. package/android/build/.transforms/79ca1220a602ed0c9c23366e0e92a6d1/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/org/wonday/pdf/PdfManager.dex +0 -0
  100. package/android/build/.transforms/79ca1220a602ed0c9c23366e0e92a6d1/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/org/wonday/pdf/PdfView$1.dex +0 -0
  101. package/android/build/.transforms/79ca1220a602ed0c9c23366e0e92a6d1/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/org/wonday/pdf/PdfView$2.dex +0 -0
  102. package/android/build/.transforms/79ca1220a602ed0c9c23366e0e92a6d1/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/org/wonday/pdf/PdfView$3.dex +0 -0
  103. package/android/build/.transforms/79ca1220a602ed0c9c23366e0e92a6d1/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/org/wonday/pdf/PdfView.dex +0 -0
  104. package/android/build/.transforms/79ca1220a602ed0c9c23366e0e92a6d1/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/org/wonday/pdf/RNPDFPackage.dex +0 -0
  105. package/android/build/.transforms/79ca1220a602ed0c9c23366e0e92a6d1/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/org/wonday/pdf/events/TopChangeEvent.dex +0 -0
  106. package/android/build/.transforms/79ca1220a602ed0c9c23366e0e92a6d1/transformed/bundleLibRuntimeToDirDebug/desugar_graph.bin +0 -0
  107. package/android/build/.transforms/c29f40a753b0ae1d85db8c8c5812fc85/results.bin +0 -1
  108. package/android/build/.transforms/c29f40a753b0ae1d85db8c8c5812fc85/transformed/classes/classes_dex/classes.dex +0 -0
  109. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/AndroidManifest.xml +0 -7
  110. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/output-metadata.json +0 -18
  111. package/android/build/intermediates/aar_main_jar/debug/syncDebugLibJars/classes.jar +0 -0
  112. package/android/build/intermediates/aar_metadata/debug/aar-metadata.properties +0 -5
  113. package/android/build/intermediates/annotation_processor_list/debug/annotationProcessors.json +0 -1
  114. package/android/build/intermediates/annotation_processor_list/debugAndroidTest/annotationProcessors.json +0 -1
  115. package/android/build/intermediates/annotation_processor_list/debugUnitTest/annotationProcessors.json +0 -1
  116. package/android/build/intermediates/annotations_typedef_file/debug/extractDebugAnnotations/typedefs.txt +0 -0
  117. package/android/build/intermediates/incremental/debug-mergeJavaRes/merge-state +0 -0
  118. package/android/build/intermediates/local_only_symbol_list/debug/R-def.txt +0 -2
  119. package/android/build/intermediates/manifest_merge_blame_file/debug/manifest-merger-blame-debug-report.txt +0 -8
  120. package/android/build/intermediates/merged_java_res/debug/mergeDebugJavaResource/feature-react-native-pdf.jar +0 -0
  121. package/android/build/intermediates/merged_manifest/debug/AndroidManifest.xml +0 -7
  122. package/android/build/intermediates/navigation_json/debug/navigation.json +0 -1
  123. package/android/build/intermediates/packaged_manifests/debug/output-metadata.json +0 -18
  124. package/android/build/outputs/aar/react-native-pdf-debug.aar +0 -0
  125. package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/PdfManager.class.uniqueId3 +0 -0
  126. package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/PdfManager.class.uniqueId4 +0 -0
  127. package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/PdfView$2.class.uniqueId6 +0 -0
  128. package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/PdfView$3.class.uniqueId4 +0 -0
  129. package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/PdfView$3.class.uniqueId5 +0 -0
  130. package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/PdfView.class.uniqueId3 +0 -0
  131. package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/RNPDFPackage.class.uniqueId2 +0 -0
  132. package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/RNPDFPdfViewManagerDelegate.class.uniqueId7 +0 -0
  133. package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/RNPDFPdfViewManagerInterface.class.uniqueId1 +0 -0
  134. /package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/{RNPDFPackage.class.uniqueId1 → RNPDFPackage.class.uniqueId4} +0 -0
package/README.md CHANGED
@@ -13,6 +13,63 @@ A react native PDF view component (cross-platform support)
13
13
  * support password protected pdf
14
14
  * jump to a specific page in the pdf
15
15
  * auto scroll with configurable speed (ideal for music sheets)
16
+ * annotate pages with ink, text, and highlight tools
17
+
18
+ ### Annotation editing
19
+
20
+ The component accepts an annotation document through the `annotations` prop together with `annotationMode`, `annotationTool`, `annotationEditable`, and `annotationIdMode`. Ink defaults can be controlled with `annotationInkColor` and `annotationInkThickness`.
21
+
22
+ ```tsx
23
+ const annotations = {
24
+ editable: true,
25
+ idMode: 'auto',
26
+ annotations: [
27
+ {
28
+ id: 'note-1',
29
+ page: 1,
30
+ type: 'text',
31
+ bounds: {x: 0.15, y: 0.24, width: 0.28, height: 0.12},
32
+ text: 'Reminder for page one',
33
+ style: {color: '#2244aa', fontSize: 15, textAlign: 'left'},
34
+ },
35
+ {
36
+ id: 'stroke-1',
37
+ page: 2,
38
+ type: 'ink',
39
+ points: [
40
+ {x: 0.12, y: 0.18},
41
+ {x: 0.26, y: 0.22},
42
+ {x: 0.34, y: 0.19},
43
+ ],
44
+ style: {color: '#111111', thickness: 2},
45
+ },
46
+ ],
47
+ };
48
+
49
+ <Pdf
50
+ ref={pdfRef}
51
+ source={source}
52
+ annotations={annotations}
53
+ annotationMode
54
+ annotationTool="ink"
55
+ annotationInkColor="#1d4ed8"
56
+ annotationInkThickness={4}
57
+ />
58
+ ```
59
+
60
+ Supported tools are `select`, `ink`, `text`, and `highlight`.
61
+
62
+ In `select` mode, tap an annotation to select it, drag to move it, and use the resize handle to resize text and highlight annotations. Deletion is host-controlled: call `pdfRef.current.deleteSelectedAnnotation()` or `pdfRef.current.deleteAllAnnotations()` from your own UI.
63
+
64
+ Call `await pdfRef.current.saveAnnotations()` to receive the current document back from native as `{ editable, idMode, annotations }`.
65
+
66
+ Legacy `underline` and `strikeout` annotations are normalized to `highlight` when loading and saving.
67
+
68
+ Notes:
69
+
70
+ * Editing currently targets the default vertical viewer flow.
71
+ * Android editing is disabled when `horizontal`, `enablePaging`, `enableRTL`, or `singlePage` are enabled.
72
+ * iOS editing uses PDFKit when `usePDFKit` is true.
16
73
 
17
74
  ### Supported versions
18
75
  We use [`react-native-blob-util`](https://github.com/RonRadtke/react-native-blob-util) to handle file system access in this package,
Binary file
@@ -75,6 +75,27 @@ public class RNPDFPdfViewManagerDelegate<T extends View, U extends BaseViewManag
75
75
  case "password":
76
76
  mViewManager.setPassword(view, value == null ? null : (String) value);
77
77
  break;
78
+ case "annotations":
79
+ mViewManager.setAnnotations(view, value == null ? null : (String) value);
80
+ break;
81
+ case "annotationMode":
82
+ mViewManager.setAnnotationMode(view, value == null ? false : (boolean) value);
83
+ break;
84
+ case "annotationTool":
85
+ mViewManager.setAnnotationTool(view, value == null ? null : (String) value);
86
+ break;
87
+ case "annotationEditable":
88
+ mViewManager.setAnnotationEditable(view, value == null ? false : (boolean) value);
89
+ break;
90
+ case "annotationIdMode":
91
+ mViewManager.setAnnotationIdMode(view, value == null ? null : (String) value);
92
+ break;
93
+ case "annotationInkColor":
94
+ mViewManager.setAnnotationInkColor(view, value == null ? null : (String) value);
95
+ break;
96
+ case "annotationInkThickness":
97
+ mViewManager.setAnnotationInkThickness(view, value == null ? 0f : ((Double) value).floatValue());
98
+ break;
78
99
  case "singlePage":
79
100
  mViewManager.setSinglePage(view, value == null ? false : (boolean) value);
80
101
  break;
@@ -95,6 +116,15 @@ public class RNPDFPdfViewManagerDelegate<T extends View, U extends BaseViewManag
95
116
  case "stopNativeAutoScroll":
96
117
  mViewManager.stopNativeAutoScroll(view);
97
118
  break;
119
+ case "saveAnnotations":
120
+ mViewManager.saveAnnotations(view);
121
+ break;
122
+ case "deleteSelectedAnnotation":
123
+ mViewManager.deleteSelectedAnnotation(view);
124
+ break;
125
+ case "deleteAllAnnotations":
126
+ mViewManager.deleteAllAnnotations(view);
127
+ break;
98
128
  }
99
129
  }
100
130
  }
@@ -31,8 +31,18 @@ public interface RNPDFPdfViewManagerInterface<T extends View> extends ViewManage
31
31
  void setFitPolicy(T view, int value);
32
32
  void setSpacing(T view, int value);
33
33
  void setPassword(T view, @Nullable String value);
34
+ void setAnnotations(T view, @Nullable String value);
35
+ void setAnnotationMode(T view, boolean value);
36
+ void setAnnotationTool(T view, @Nullable String value);
37
+ void setAnnotationEditable(T view, boolean value);
38
+ void setAnnotationIdMode(T view, @Nullable String value);
39
+ void setAnnotationInkColor(T view, @Nullable String value);
40
+ void setAnnotationInkThickness(T view, float value);
34
41
  void setSinglePage(T view, boolean value);
35
42
  void setNativePage(T view, int page);
36
43
  void startNativeAutoScroll(T view, double pixels, double resumeDelay);
37
44
  void stopNativeAutoScroll(T view);
45
+ void saveAnnotations(T view);
46
+ void deleteSelectedAnnotation(T view);
47
+ void deleteAllAnnotations(T view);
38
48
  }
@@ -36,6 +36,13 @@ RNPDFPdfViewProps::RNPDFPdfViewProps(
36
36
  fitPolicy(convertRawProp(context, rawProps, "fitPolicy", sourceProps.fitPolicy, {0})),
37
37
  spacing(convertRawProp(context, rawProps, "spacing", sourceProps.spacing, {0})),
38
38
  password(convertRawProp(context, rawProps, "password", sourceProps.password, {})),
39
+ annotations(convertRawProp(context, rawProps, "annotations", sourceProps.annotations, {})),
40
+ annotationMode(convertRawProp(context, rawProps, "annotationMode", sourceProps.annotationMode, {false})),
41
+ annotationTool(convertRawProp(context, rawProps, "annotationTool", sourceProps.annotationTool, {})),
42
+ annotationEditable(convertRawProp(context, rawProps, "annotationEditable", sourceProps.annotationEditable, {false})),
43
+ annotationIdMode(convertRawProp(context, rawProps, "annotationIdMode", sourceProps.annotationIdMode, {})),
44
+ annotationInkColor(convertRawProp(context, rawProps, "annotationInkColor", sourceProps.annotationInkColor, {})),
45
+ annotationInkThickness(convertRawProp(context, rawProps, "annotationInkThickness", sourceProps.annotationInkThickness, {0.0})),
39
46
  singlePage(convertRawProp(context, rawProps, "singlePage", sourceProps.singlePage, {false})) {}
40
47
 
41
48
  #ifdef RN_SERIALIZABLE_STATE
@@ -122,6 +129,34 @@ folly::dynamic RNPDFPdfViewProps::getDiffProps(
122
129
  result["password"] = password;
123
130
  }
124
131
 
132
+ if (annotations != oldProps->annotations) {
133
+ result["annotations"] = annotations;
134
+ }
135
+
136
+ if (annotationMode != oldProps->annotationMode) {
137
+ result["annotationMode"] = annotationMode;
138
+ }
139
+
140
+ if (annotationTool != oldProps->annotationTool) {
141
+ result["annotationTool"] = annotationTool;
142
+ }
143
+
144
+ if (annotationEditable != oldProps->annotationEditable) {
145
+ result["annotationEditable"] = annotationEditable;
146
+ }
147
+
148
+ if (annotationIdMode != oldProps->annotationIdMode) {
149
+ result["annotationIdMode"] = annotationIdMode;
150
+ }
151
+
152
+ if (annotationInkColor != oldProps->annotationInkColor) {
153
+ result["annotationInkColor"] = annotationInkColor;
154
+ }
155
+
156
+ if ((annotationInkThickness != oldProps->annotationInkThickness) && !(std::isnan(annotationInkThickness) && std::isnan(oldProps->annotationInkThickness))) {
157
+ result["annotationInkThickness"] = annotationInkThickness;
158
+ }
159
+
125
160
  if (singlePage != oldProps->singlePage) {
126
161
  result["singlePage"] = singlePage;
127
162
  }
@@ -39,6 +39,13 @@ class RNPDFPdfViewProps final : public ViewProps {
39
39
  int fitPolicy{0};
40
40
  int spacing{0};
41
41
  std::string password{};
42
+ std::string annotations{};
43
+ bool annotationMode{false};
44
+ std::string annotationTool{};
45
+ bool annotationEditable{false};
46
+ std::string annotationIdMode{};
47
+ std::string annotationInkColor{};
48
+ Float annotationInkThickness{0.0};
42
49
  bool singlePage{false};
43
50
 
44
51
  #ifdef RN_SERIALIZABLE_STATE
@@ -1 +1 @@
1
- {"libraryName":"","modules":{"RNPDFPdfView":{"type":"Component","components":{"RNPDFPdfView":{"extendsProps":[{"type":"ReactNativeBuiltInType","knownTypeName":"ReactNativeCoreViewProps"}],"events":[{"name":"onChange","optional":true,"bubblingType":"bubble","typeAnnotation":{"type":"EventTypeAnnotation","argument":{"type":"ObjectTypeAnnotation","properties":[{"name":"message","optional":true,"typeAnnotation":{"type":"StringTypeAnnotation"}}]}}}],"props":[{"name":"path","optional":true,"typeAnnotation":{"type":"StringTypeAnnotation","default":null}},{"name":"page","optional":true,"typeAnnotation":{"type":"Int32TypeAnnotation","default":0}},{"name":"scale","optional":true,"typeAnnotation":{"type":"FloatTypeAnnotation","default":0}},{"name":"minScale","optional":true,"typeAnnotation":{"type":"FloatTypeAnnotation","default":0}},{"name":"maxScale","optional":true,"typeAnnotation":{"type":"FloatTypeAnnotation","default":0}},{"name":"horizontal","optional":true,"typeAnnotation":{"type":"BooleanTypeAnnotation","default":false}},{"name":"enablePaging","optional":true,"typeAnnotation":{"type":"BooleanTypeAnnotation","default":false}},{"name":"enableRTL","optional":true,"typeAnnotation":{"type":"BooleanTypeAnnotation","default":false}},{"name":"enableAnnotationRendering","optional":true,"typeAnnotation":{"type":"BooleanTypeAnnotation","default":false}},{"name":"showsHorizontalScrollIndicator","optional":true,"typeAnnotation":{"type":"BooleanTypeAnnotation","default":false}},{"name":"showsVerticalScrollIndicator","optional":true,"typeAnnotation":{"type":"BooleanTypeAnnotation","default":false}},{"name":"scrollEnabled","optional":true,"typeAnnotation":{"type":"BooleanTypeAnnotation","default":false}},{"name":"enableAntialiasing","optional":true,"typeAnnotation":{"type":"BooleanTypeAnnotation","default":false}},{"name":"enableDoubleTapZoom","optional":true,"typeAnnotation":{"type":"BooleanTypeAnnotation","default":false}},{"name":"fitPolicy","optional":true,"typeAnnotation":{"type":"Int32TypeAnnotation","default":0}},{"name":"spacing","optional":true,"typeAnnotation":{"type":"Int32TypeAnnotation","default":0}},{"name":"password","optional":true,"typeAnnotation":{"type":"StringTypeAnnotation","default":null}},{"name":"singlePage","optional":true,"typeAnnotation":{"type":"BooleanTypeAnnotation","default":false}}],"commands":[{"name":"setNativePage","optional":false,"typeAnnotation":{"type":"FunctionTypeAnnotation","params":[{"name":"page","optional":false,"typeAnnotation":{"type":"Int32TypeAnnotation"}}],"returnTypeAnnotation":{"type":"VoidTypeAnnotation"}}},{"name":"startNativeAutoScroll","optional":false,"typeAnnotation":{"type":"FunctionTypeAnnotation","params":[{"name":"pixels","optional":false,"typeAnnotation":{"type":"DoubleTypeAnnotation"}},{"name":"resumeDelay","optional":false,"typeAnnotation":{"type":"DoubleTypeAnnotation"}}],"returnTypeAnnotation":{"type":"VoidTypeAnnotation"}}},{"name":"stopNativeAutoScroll","optional":false,"typeAnnotation":{"type":"FunctionTypeAnnotation","params":[],"returnTypeAnnotation":{"type":"VoidTypeAnnotation"}}}]}}}}}
1
+ {"libraryName":"","modules":{"RNPDFPdfView":{"type":"Component","components":{"RNPDFPdfView":{"extendsProps":[{"type":"ReactNativeBuiltInType","knownTypeName":"ReactNativeCoreViewProps"}],"events":[{"name":"onChange","optional":true,"bubblingType":"bubble","typeAnnotation":{"type":"EventTypeAnnotation","argument":{"type":"ObjectTypeAnnotation","properties":[{"name":"message","optional":true,"typeAnnotation":{"type":"StringTypeAnnotation"}}]}}}],"props":[{"name":"path","optional":true,"typeAnnotation":{"type":"StringTypeAnnotation","default":null}},{"name":"page","optional":true,"typeAnnotation":{"type":"Int32TypeAnnotation","default":0}},{"name":"scale","optional":true,"typeAnnotation":{"type":"FloatTypeAnnotation","default":0}},{"name":"minScale","optional":true,"typeAnnotation":{"type":"FloatTypeAnnotation","default":0}},{"name":"maxScale","optional":true,"typeAnnotation":{"type":"FloatTypeAnnotation","default":0}},{"name":"horizontal","optional":true,"typeAnnotation":{"type":"BooleanTypeAnnotation","default":false}},{"name":"enablePaging","optional":true,"typeAnnotation":{"type":"BooleanTypeAnnotation","default":false}},{"name":"enableRTL","optional":true,"typeAnnotation":{"type":"BooleanTypeAnnotation","default":false}},{"name":"enableAnnotationRendering","optional":true,"typeAnnotation":{"type":"BooleanTypeAnnotation","default":false}},{"name":"showsHorizontalScrollIndicator","optional":true,"typeAnnotation":{"type":"BooleanTypeAnnotation","default":false}},{"name":"showsVerticalScrollIndicator","optional":true,"typeAnnotation":{"type":"BooleanTypeAnnotation","default":false}},{"name":"scrollEnabled","optional":true,"typeAnnotation":{"type":"BooleanTypeAnnotation","default":false}},{"name":"enableAntialiasing","optional":true,"typeAnnotation":{"type":"BooleanTypeAnnotation","default":false}},{"name":"enableDoubleTapZoom","optional":true,"typeAnnotation":{"type":"BooleanTypeAnnotation","default":false}},{"name":"fitPolicy","optional":true,"typeAnnotation":{"type":"Int32TypeAnnotation","default":0}},{"name":"spacing","optional":true,"typeAnnotation":{"type":"Int32TypeAnnotation","default":0}},{"name":"password","optional":true,"typeAnnotation":{"type":"StringTypeAnnotation","default":null}},{"name":"annotations","optional":true,"typeAnnotation":{"type":"StringTypeAnnotation","default":null}},{"name":"annotationMode","optional":true,"typeAnnotation":{"type":"BooleanTypeAnnotation","default":false}},{"name":"annotationTool","optional":true,"typeAnnotation":{"type":"StringTypeAnnotation","default":null}},{"name":"annotationEditable","optional":true,"typeAnnotation":{"type":"BooleanTypeAnnotation","default":false}},{"name":"annotationIdMode","optional":true,"typeAnnotation":{"type":"StringTypeAnnotation","default":null}},{"name":"annotationInkColor","optional":true,"typeAnnotation":{"type":"StringTypeAnnotation","default":null}},{"name":"annotationInkThickness","optional":true,"typeAnnotation":{"type":"FloatTypeAnnotation","default":0}},{"name":"singlePage","optional":true,"typeAnnotation":{"type":"BooleanTypeAnnotation","default":false}}],"commands":[{"name":"setNativePage","optional":false,"typeAnnotation":{"type":"FunctionTypeAnnotation","params":[{"name":"page","optional":false,"typeAnnotation":{"type":"Int32TypeAnnotation"}}],"returnTypeAnnotation":{"type":"VoidTypeAnnotation"}}},{"name":"startNativeAutoScroll","optional":false,"typeAnnotation":{"type":"FunctionTypeAnnotation","params":[{"name":"pixels","optional":false,"typeAnnotation":{"type":"DoubleTypeAnnotation"}},{"name":"resumeDelay","optional":false,"typeAnnotation":{"type":"DoubleTypeAnnotation"}}],"returnTypeAnnotation":{"type":"VoidTypeAnnotation"}}},{"name":"stopNativeAutoScroll","optional":false,"typeAnnotation":{"type":"FunctionTypeAnnotation","params":[],"returnTypeAnnotation":{"type":"VoidTypeAnnotation"}}},{"name":"saveAnnotations","optional":false,"typeAnnotation":{"type":"FunctionTypeAnnotation","params":[],"returnTypeAnnotation":{"type":"VoidTypeAnnotation"}}},{"name":"deleteSelectedAnnotation","optional":false,"typeAnnotation":{"type":"FunctionTypeAnnotation","params":[],"returnTypeAnnotation":{"type":"VoidTypeAnnotation"}}},{"name":"deleteAllAnnotations","optional":false,"typeAnnotation":{"type":"FunctionTypeAnnotation","params":[],"returnTypeAnnotation":{"type":"VoidTypeAnnotation"}}}]}}}}}
@@ -1 +1 @@
1
- #Fri May 15 12:22:40 CEST 2026
1
+ #Sat May 16 13:51:56 CEST 2026
@@ -1,2 +1,2 @@
1
1
  <?xml version="1.0" encoding="utf-8"?>
2
- <merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/filippo/Documents/react-native-pdf-1/FabricExample/node_modules/react-native-pdf/android/src/main/assets"/></dataSet><dataSet config="debug" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/filippo/Documents/react-native-pdf-1/FabricExample/node_modules/react-native-pdf/android/src/debug/assets"/></dataSet><dataSet config="generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/filippo/Documents/react-native-pdf-1/FabricExample/node_modules/react-native-pdf/android/build/intermediates/shader_assets/debug/compileDebugShaders/out"/></dataSet></merger>
2
+ <merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/filippo/Documents/diodellamialode/DioDellaMiaLode/node_modules/@amafil/react-native-pdf-toolkit/android/src/main/assets"/></dataSet><dataSet config="debug" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/filippo/Documents/diodellamialode/DioDellaMiaLode/node_modules/@amafil/react-native-pdf-toolkit/android/src/debug/assets"/></dataSet><dataSet config="generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/filippo/Documents/diodellamialode/DioDellaMiaLode/node_modules/@amafil/react-native-pdf-toolkit/android/build/intermediates/shader_assets/debug/compileDebugShaders/out"/></dataSet></merger>
@@ -1,2 +1,2 @@
1
1
  <?xml version="1.0" encoding="utf-8"?>
2
- <merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/filippo/Documents/react-native-pdf-1/FabricExample/node_modules/react-native-pdf/android/src/main/jniLibs"/></dataSet><dataSet config="debug" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/filippo/Documents/react-native-pdf-1/FabricExample/node_modules/react-native-pdf/android/src/debug/jniLibs"/></dataSet></merger>
2
+ <merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/filippo/Documents/diodellamialode/DioDellaMiaLode/node_modules/@amafil/react-native-pdf-toolkit/android/src/main/jniLibs"/></dataSet><dataSet config="debug" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/filippo/Documents/diodellamialode/DioDellaMiaLode/node_modules/@amafil/react-native-pdf-toolkit/android/src/debug/jniLibs"/></dataSet></merger>
@@ -1,2 +1,2 @@
1
1
  <?xml version="1.0" encoding="utf-8"?>
2
- <merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/filippo/Documents/react-native-pdf-1/FabricExample/node_modules/react-native-pdf/android/src/main/shaders"/></dataSet><dataSet config="debug" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/filippo/Documents/react-native-pdf-1/FabricExample/node_modules/react-native-pdf/android/src/debug/shaders"/></dataSet></merger>
2
+ <merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/filippo/Documents/diodellamialode/DioDellaMiaLode/node_modules/@amafil/react-native-pdf-toolkit/android/src/main/shaders"/></dataSet><dataSet config="debug" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/filippo/Documents/diodellamialode/DioDellaMiaLode/node_modules/@amafil/react-native-pdf-toolkit/android/src/debug/shaders"/></dataSet></merger>
@@ -138,6 +138,41 @@ public class PdfManager extends SimpleViewManager<PdfView> implements RNPDFPdfVi
138
138
  pdfView.setEnableDoubleTapZoom(enableDoubleTap);
139
139
  }
140
140
 
141
+ @ReactProp(name = "annotations")
142
+ public void setAnnotations(PdfView pdfView, @Nullable String annotations) {
143
+ pdfView.setAnnotations(annotations);
144
+ }
145
+
146
+ @ReactProp(name = "annotationMode")
147
+ public void setAnnotationMode(PdfView pdfView, boolean annotationMode) {
148
+ pdfView.setAnnotationMode(annotationMode);
149
+ }
150
+
151
+ @ReactProp(name = "annotationTool")
152
+ public void setAnnotationTool(PdfView pdfView, @Nullable String annotationTool) {
153
+ pdfView.setAnnotationTool(annotationTool);
154
+ }
155
+
156
+ @ReactProp(name = "annotationEditable")
157
+ public void setAnnotationEditable(PdfView pdfView, boolean annotationEditable) {
158
+ pdfView.setAnnotationEditable(annotationEditable);
159
+ }
160
+
161
+ @ReactProp(name = "annotationIdMode")
162
+ public void setAnnotationIdMode(PdfView pdfView, @Nullable String annotationIdMode) {
163
+ pdfView.setAnnotationIdMode(annotationIdMode);
164
+ }
165
+
166
+ @ReactProp(name = "annotationInkColor")
167
+ public void setAnnotationInkColor(PdfView pdfView, @Nullable String annotationInkColor) {
168
+ pdfView.setAnnotationInkColor(annotationInkColor);
169
+ }
170
+
171
+ @ReactProp(name = "annotationInkThickness")
172
+ public void setAnnotationInkThickness(PdfView pdfView, float annotationInkThickness) {
173
+ pdfView.setAnnotationInkThickness(annotationInkThickness);
174
+ }
175
+
141
176
  @ReactProp(name = "enablePaging")
142
177
  public void setEnablePaging(PdfView pdfView, boolean enablePaging) {
143
178
  pdfView.setEnablePaging(enablePaging);
@@ -183,9 +218,30 @@ public class PdfManager extends SimpleViewManager<PdfView> implements RNPDFPdfVi
183
218
  startNativeAutoScroll(root, args.getDouble(0), args.getDouble(1));
184
219
  } else if ("stopNativeAutoScroll".equals(commandId)) {
185
220
  stopNativeAutoScroll(root);
221
+ } else if ("saveAnnotations".equals(commandId)) {
222
+ saveAnnotations(root);
223
+ } else if ("deleteSelectedAnnotation".equals(commandId)) {
224
+ deleteSelectedAnnotation(root);
225
+ } else if ("deleteAllAnnotations".equals(commandId)) {
226
+ deleteAllAnnotations(root);
186
227
  }
187
228
  }
188
229
 
230
+ @Override
231
+ public void saveAnnotations(PdfView view) {
232
+ view.saveAnnotations();
233
+ }
234
+
235
+ @Override
236
+ public void deleteSelectedAnnotation(PdfView view) {
237
+ view.deleteSelectedAnnotation();
238
+ }
239
+
240
+ @Override
241
+ public void deleteAllAnnotations(PdfView view) {
242
+ view.deleteAllAnnotations();
243
+ }
244
+
189
245
  @Override
190
246
  public void onAfterUpdateTransaction(PdfView pdfView) {
191
247
  super.onAfterUpdateTransaction(pdfView);