@amafil/react-native-pdf-toolkit 1.1.0 → 1.1.2

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 (67) hide show
  1. package/README.md +57 -0
  2. package/android/build/.transforms/2892d280277a194daf04e3af971b529e/results.bin +1 -0
  3. package/android/build/.transforms/2892d280277a194daf04e3af971b529e/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/facebook/react/viewmanagers/RNPDFPdfViewManagerDelegate.dex +0 -0
  4. package/android/build/.transforms/2892d280277a194daf04e3af971b529e/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/facebook/react/viewmanagers/RNPDFPdfViewManagerInterface.dex +0 -0
  5. package/android/build/.transforms/2892d280277a194daf04e3af971b529e/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/org/wonday/pdf/BuildConfig.dex +0 -0
  6. package/android/build/.transforms/2892d280277a194daf04e3af971b529e/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/org/wonday/pdf/PdfManager.dex +0 -0
  7. package/android/build/.transforms/2892d280277a194daf04e3af971b529e/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/org/wonday/pdf/PdfView$1.dex +0 -0
  8. package/android/build/.transforms/2892d280277a194daf04e3af971b529e/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/org/wonday/pdf/PdfView$2.dex +0 -0
  9. package/android/build/.transforms/2892d280277a194daf04e3af971b529e/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/org/wonday/pdf/PdfView$3.dex +0 -0
  10. package/android/build/.transforms/2892d280277a194daf04e3af971b529e/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/org/wonday/pdf/PdfView$AnnotationOverlayView$1.dex +0 -0
  11. package/android/build/.transforms/2892d280277a194daf04e3af971b529e/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/org/wonday/pdf/PdfView$AnnotationOverlayView$AnnotationHit.dex +0 -0
  12. package/android/build/.transforms/2892d280277a194daf04e3af971b529e/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/org/wonday/pdf/PdfView$AnnotationOverlayView$AnnotationSelectionHit.dex +0 -0
  13. package/android/build/.transforms/2892d280277a194daf04e3af971b529e/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/org/wonday/pdf/PdfView$AnnotationOverlayView.dex +0 -0
  14. package/android/build/.transforms/2892d280277a194daf04e3af971b529e/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/org/wonday/pdf/PdfView.dex +0 -0
  15. package/android/build/.transforms/2892d280277a194daf04e3af971b529e/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/org/wonday/pdf/RNPDFPackage.dex +0 -0
  16. package/android/build/.transforms/2892d280277a194daf04e3af971b529e/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/org/wonday/pdf/events/TopChangeEvent.dex +0 -0
  17. package/android/build/.transforms/2892d280277a194daf04e3af971b529e/transformed/bundleLibRuntimeToDirDebug/desugar_graph.bin +0 -0
  18. package/android/build/.transforms/e40f3b884607647e8beb6dabe8165962/results.bin +1 -0
  19. package/android/build/.transforms/e40f3b884607647e8beb6dabe8165962/transformed/classes/classes_dex/classes.dex +0 -0
  20. package/android/build/generated/source/buildConfig/debug/org/wonday/pdf/BuildConfig.java +1 -1
  21. package/android/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNPDFPdfViewManagerDelegate.java +31 -0
  22. package/android/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNPDFPdfViewManagerInterface.java +10 -0
  23. package/android/build/generated/source/codegen/jni/react/renderer/components/rnpdf/Props.cpp +35 -0
  24. package/android/build/generated/source/codegen/jni/react/renderer/components/rnpdf/Props.h +10 -0
  25. package/android/build/generated/source/codegen/schema.json +1 -1
  26. package/android/build/intermediates/compile_library_classes_jar/debug/bundleLibCompileToJarDebug/classes.jar +0 -0
  27. package/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties +1 -1
  28. package/android/build/intermediates/incremental/debug/packageDebugResources/merger.xml +1 -1
  29. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/facebook/react/viewmanagers/RNPDFPdfViewManagerDelegate.class +0 -0
  30. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/facebook/react/viewmanagers/RNPDFPdfViewManagerInterface.class +0 -0
  31. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/org/wonday/pdf/PdfManager.class +0 -0
  32. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/org/wonday/pdf/PdfView$1.class +0 -0
  33. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/org/wonday/pdf/PdfView$2.class +0 -0
  34. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/org/wonday/pdf/PdfView$3.class +0 -0
  35. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/org/wonday/pdf/PdfView$AnnotationOverlayView$1.class +0 -0
  36. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/org/wonday/pdf/PdfView$AnnotationOverlayView$AnnotationHit.class +0 -0
  37. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/org/wonday/pdf/PdfView$AnnotationOverlayView$AnnotationSelectionHit.class +0 -0
  38. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/org/wonday/pdf/PdfView$AnnotationOverlayView.class +0 -0
  39. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/org/wonday/pdf/PdfView.class +0 -0
  40. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/facebook/react/viewmanagers/RNPDFPdfViewManagerDelegate.class +0 -0
  41. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/facebook/react/viewmanagers/RNPDFPdfViewManagerInterface.class +0 -0
  42. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/org/wonday/pdf/PdfManager.class +0 -0
  43. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/org/wonday/pdf/PdfView$1.class +0 -0
  44. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/org/wonday/pdf/PdfView$2.class +0 -0
  45. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/org/wonday/pdf/PdfView$3.class +0 -0
  46. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/org/wonday/pdf/PdfView$AnnotationOverlayView$1.class +0 -0
  47. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/org/wonday/pdf/PdfView$AnnotationOverlayView$AnnotationHit.class +0 -0
  48. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/org/wonday/pdf/PdfView$AnnotationOverlayView$AnnotationSelectionHit.class +0 -0
  49. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/org/wonday/pdf/PdfView$AnnotationOverlayView.class +0 -0
  50. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/org/wonday/pdf/PdfView.class +0 -0
  51. package/android/build/intermediates/runtime_library_classes_jar/debug/bundleLibRuntimeToJarDebug/classes.jar +0 -0
  52. package/android/build/outputs/logs/manifest-merger-debug-report.txt +9 -18
  53. package/android/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin +0 -0
  54. package/android/src/main/java/org/wonday/pdf/PdfManager.java +24 -0
  55. package/android/src/main/java/org/wonday/pdf/PdfView.java +80 -49
  56. package/android/src/paper/java/com/facebook/react/viewmanagers/RNPDFPdfViewManagerDelegate.java +12 -0
  57. package/android/src/paper/java/com/facebook/react/viewmanagers/RNPDFPdfViewManagerInterface.java +4 -0
  58. package/annotationDocumentUtils.js +74 -0
  59. package/fabric/RNPDFPdfNativeComponent.js +10 -3
  60. package/index.d.ts +36 -2
  61. package/index.js +42 -21
  62. package/index.js.flow +6 -2
  63. package/ios/RNPDFPdf/RNPDFPdfView.h +4 -0
  64. package/ios/RNPDFPdf/RNPDFPdfView.mm +107 -61
  65. package/ios/RNPDFPdf/RNPDFPdfViewManager.mm +22 -0
  66. package/package.json +6 -5
  67. package/android/build/generated/source/codegen/jni/react/renderer/components/rnpdf/rnpdfJSI-generated.cpp +0 -17
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,
@@ -0,0 +1 @@
1
+ o/bundleLibRuntimeToDirDebug
@@ -8,5 +8,5 @@ public final class BuildConfig {
8
8
  public static final String LIBRARY_PACKAGE_NAME = "org.wonday.pdf";
9
9
  public static final String BUILD_TYPE = "debug";
10
10
  // Field from default config.
11
- public static final boolean IS_NEW_ARCHITECTURE_ENABLED = false;
11
+ public static final boolean IS_NEW_ARCHITECTURE_ENABLED = true;
12
12
  }
@@ -16,6 +16,7 @@ import com.facebook.react.uimanager.BaseViewManager;
16
16
  import com.facebook.react.uimanager.BaseViewManagerDelegate;
17
17
  import com.facebook.react.uimanager.LayoutShadowNode;
18
18
 
19
+ @SuppressWarnings("deprecation")
19
20
  public class RNPDFPdfViewManagerDelegate<T extends View, U extends BaseViewManager<T, ? extends LayoutShadowNode> & RNPDFPdfViewManagerInterface<T>> extends BaseViewManagerDelegate<T, U> {
20
21
  public RNPDFPdfViewManagerDelegate(U viewManager) {
21
22
  super(viewManager);
@@ -74,6 +75,27 @@ public class RNPDFPdfViewManagerDelegate<T extends View, U extends BaseViewManag
74
75
  case "password":
75
76
  mViewManager.setPassword(view, value == null ? null : (String) value);
76
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;
77
99
  case "singlePage":
78
100
  mViewManager.setSinglePage(view, value == null ? false : (boolean) value);
79
101
  break;
@@ -94,6 +116,15 @@ public class RNPDFPdfViewManagerDelegate<T extends View, U extends BaseViewManag
94
116
  case "stopNativeAutoScroll":
95
117
  mViewManager.stopNativeAutoScroll(view);
96
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;
97
128
  }
98
129
  }
99
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
  }
@@ -11,6 +11,7 @@
11
11
 
12
12
  #include <react/renderer/components/view/ViewProps.h>
13
13
  #include <react/renderer/core/PropsParserContext.h>
14
+ #include <react/renderer/debug/DebugStringConvertible.h>
14
15
 
15
16
  namespace facebook::react {
16
17
 
@@ -38,6 +39,13 @@ class RNPDFPdfViewProps final : public ViewProps {
38
39
  int fitPolicy{0};
39
40
  int spacing{0};
40
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};
41
49
  bool singlePage{false};
42
50
 
43
51
  #ifdef RN_SERIALIZABLE_STATE
@@ -45,6 +53,8 @@ class RNPDFPdfViewProps final : public ViewProps {
45
53
 
46
54
  folly::dynamic getDiffProps(const Props* prevProps) const override;
47
55
  #endif
56
+
57
+
48
58
  };
49
59
 
50
60
  } // namespace facebook::react
@@ -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
- #Wed Apr 15 09:19:40 CEST 2026
1
+ #Thu Apr 30 12:36:50 CEST 2026
@@ -1,2 +1,2 @@
1
1
  <?xml version="1.0" encoding="utf-8"?>
2
- <merger version="3"><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="main$Generated" generated="true" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/filippo/Documents/react-native-pdf/android/src/main/res"/><source path="/Users/filippo/Documents/react-native-pdf/android/build/generated/res/rs/debug"/><source path="/Users/filippo/Documents/react-native-pdf/android/build/generated/res/resValues/debug"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="main" generated-set="main$Generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/filippo/Documents/react-native-pdf/android/src/main/res"/><source path="/Users/filippo/Documents/react-native-pdf/android/build/generated/res/rs/debug"/><source path="/Users/filippo/Documents/react-native-pdf/android/build/generated/res/resValues/debug"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="debug$Generated" generated="true" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/filippo/Documents/react-native-pdf/android/src/debug/res"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="debug" generated-set="debug$Generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/filippo/Documents/react-native-pdf/android/src/debug/res"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="generated$Generated" generated="true" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"/><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="generated" generated-set="generated$Generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"/><mergedItems/></merger>
2
+ <merger version="3"><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="main$Generated" generated="true" 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/res"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="main" generated-set="main$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/src/main/res"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="debug$Generated" generated="true" 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/res"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="debug" generated-set="debug$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/src/debug/res"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="generated$Generated" generated="true" 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/generated/res/resValues/debug"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="generated" generated-set="generated$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/generated/res/resValues/debug"/></dataSet><mergedItems/></merger>
@@ -1,25 +1,16 @@
1
1
  -- Merging decision tree log ---
2
2
  manifest
3
- ADDED from /Users/filippo/Documents/react-native-pdf/android/src/main/AndroidManifestNew.xml:1:1-4:12
4
- INJECTED from /Users/filippo/Documents/react-native-pdf/android/src/main/AndroidManifestNew.xml:1:1-4:12
5
- INJECTED from /Users/filippo/Documents/react-native-pdf/android/src/main/AndroidManifestNew.xml:1:1-4:12
3
+ ADDED from /Users/filippo/Documents/diodellamialode/DioDellaMiaLode/node_modules/@amafil/react-native-pdf-toolkit/android/src/main/AndroidManifestNew.xml:1:1-4:12
4
+ INJECTED from /Users/filippo/Documents/diodellamialode/DioDellaMiaLode/node_modules/@amafil/react-native-pdf-toolkit/android/src/main/AndroidManifestNew.xml:1:1-4:12
6
5
  package
7
- INJECTED from /Users/filippo/Documents/react-native-pdf/android/src/main/AndroidManifestNew.xml
8
- ADDED from /Users/filippo/Documents/react-native-pdf/android/src/main/AndroidManifestNew.xml:1:1-4:12
9
- INJECTED from /Users/filippo/Documents/react-native-pdf/android/src/main/AndroidManifestNew.xml
6
+ INJECTED from /Users/filippo/Documents/diodellamialode/DioDellaMiaLode/node_modules/@amafil/react-native-pdf-toolkit/android/src/main/AndroidManifestNew.xml
10
7
  xmlns:android
11
- ADDED from /Users/filippo/Documents/react-native-pdf/android/src/main/AndroidManifestNew.xml:1:11-69
8
+ ADDED from /Users/filippo/Documents/diodellamialode/DioDellaMiaLode/node_modules/@amafil/react-native-pdf-toolkit/android/src/main/AndroidManifestNew.xml:1:11-69
12
9
  uses-sdk
13
- INJECTED from /Users/filippo/Documents/react-native-pdf/android/src/main/AndroidManifestNew.xml reason: use-sdk injection requested
14
- INJECTED from /Users/filippo/Documents/react-native-pdf/android/src/main/AndroidManifestNew.xml
15
- INJECTED from /Users/filippo/Documents/react-native-pdf/android/src/main/AndroidManifestNew.xml
16
- INJECTED from /Users/filippo/Documents/react-native-pdf/android/src/main/AndroidManifestNew.xml
17
- INJECTED from /Users/filippo/Documents/react-native-pdf/android/src/main/AndroidManifestNew.xml
10
+ INJECTED from /Users/filippo/Documents/diodellamialode/DioDellaMiaLode/node_modules/@amafil/react-native-pdf-toolkit/android/src/main/AndroidManifestNew.xml reason: use-sdk injection requested
11
+ INJECTED from /Users/filippo/Documents/diodellamialode/DioDellaMiaLode/node_modules/@amafil/react-native-pdf-toolkit/android/src/main/AndroidManifestNew.xml
12
+ INJECTED from /Users/filippo/Documents/diodellamialode/DioDellaMiaLode/node_modules/@amafil/react-native-pdf-toolkit/android/src/main/AndroidManifestNew.xml
18
13
  android:targetSdkVersion
19
- INJECTED from /Users/filippo/Documents/react-native-pdf/android/src/main/AndroidManifestNew.xml
20
- ADDED from /Users/filippo/Documents/react-native-pdf/android/src/main/AndroidManifestNew.xml
21
- INJECTED from /Users/filippo/Documents/react-native-pdf/android/src/main/AndroidManifestNew.xml
14
+ INJECTED from /Users/filippo/Documents/diodellamialode/DioDellaMiaLode/node_modules/@amafil/react-native-pdf-toolkit/android/src/main/AndroidManifestNew.xml
22
15
  android:minSdkVersion
23
- INJECTED from /Users/filippo/Documents/react-native-pdf/android/src/main/AndroidManifestNew.xml
24
- ADDED from /Users/filippo/Documents/react-native-pdf/android/src/main/AndroidManifestNew.xml
25
- INJECTED from /Users/filippo/Documents/react-native-pdf/android/src/main/AndroidManifestNew.xml
16
+ INJECTED from /Users/filippo/Documents/diodellamialode/DioDellaMiaLode/node_modules/@amafil/react-native-pdf-toolkit/android/src/main/AndroidManifestNew.xml
@@ -164,6 +164,16 @@ public class PdfManager extends SimpleViewManager<PdfView> implements RNPDFPdfVi
164
164
  pdfView.setAnnotationIdMode(annotationIdMode);
165
165
  }
166
166
 
167
+ @ReactProp(name = "annotationInkColor")
168
+ public void setAnnotationInkColor(PdfView pdfView, @Nullable String annotationInkColor) {
169
+ pdfView.setAnnotationInkColor(annotationInkColor);
170
+ }
171
+
172
+ @ReactProp(name = "annotationInkThickness")
173
+ public void setAnnotationInkThickness(PdfView pdfView, float annotationInkThickness) {
174
+ pdfView.setAnnotationInkThickness(annotationInkThickness);
175
+ }
176
+
167
177
  @ReactProp(name = "enablePaging")
168
178
  public void setEnablePaging(PdfView pdfView, boolean enablePaging) {
169
179
  pdfView.setEnablePaging(enablePaging);
@@ -211,6 +221,10 @@ public class PdfManager extends SimpleViewManager<PdfView> implements RNPDFPdfVi
211
221
  stopNativeAutoScroll(root);
212
222
  } else if ("saveAnnotations".equals(commandId)) {
213
223
  saveAnnotations(root);
224
+ } else if ("deleteSelectedAnnotation".equals(commandId)) {
225
+ deleteSelectedAnnotation(root);
226
+ } else if ("deleteAllAnnotations".equals(commandId)) {
227
+ deleteAllAnnotations(root);
214
228
  }
215
229
  }
216
230
 
@@ -219,6 +233,16 @@ public class PdfManager extends SimpleViewManager<PdfView> implements RNPDFPdfVi
219
233
  view.saveAnnotations();
220
234
  }
221
235
 
236
+ @Override
237
+ public void deleteSelectedAnnotation(PdfView view) {
238
+ view.deleteSelectedAnnotation();
239
+ }
240
+
241
+ @Override
242
+ public void deleteAllAnnotations(PdfView view) {
243
+ view.deleteAllAnnotations();
244
+ }
245
+
222
246
  @Override
223
247
  public void onAfterUpdateTransaction(PdfView pdfView) {
224
248
  super.onAfterUpdateTransaction(pdfView);