CompdfkitPdfModule.java 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. /**
  2. * Copyright © 2014-2024 PDF Technologies, Inc. All Rights Reserved.
  3. * <p>
  4. * THIS SOURCE CODE AND ANY ACCOMPANYING DOCUMENTATION ARE PROTECTED BY INTERNATIONAL COPYRIGHT LAW
  5. * AND MAY NOT BE RESOLD OR REDISTRIBUTED. USAGE IS BOUND TO THE ComPDFKit LICENSE AGREEMENT.
  6. * UNAUTHORIZED REPRODUCTION OR DISTRIBUTION IS SUBJECT TO CIVIL AND CRIMINAL PENALTIES.
  7. * This notice may not be removed from this file.
  8. */
  9. package com.compdfkitpdf.reactnative;
  10. import android.content.Intent;
  11. import android.net.Uri;
  12. import androidx.annotation.NonNull;
  13. import com.compdfkit.core.document.CPDFSdk;
  14. import com.compdfkit.tools.common.pdf.CPDFConfigurationUtils;
  15. import com.compdfkit.tools.common.pdf.CPDFDocumentActivity;
  16. import com.compdfkit.tools.common.pdf.config.CPDFConfiguration;
  17. import com.facebook.react.bridge.ReactApplicationContext;
  18. import com.facebook.react.bridge.ReactContext;
  19. import com.facebook.react.bridge.ReactContextBaseJavaModule;
  20. import com.facebook.react.bridge.ReactMethod;
  21. public class CompdfkitPdfModule extends ReactContextBaseJavaModule {
  22. public static final String NAME = "ComPDFKit";
  23. public static final String FILE_SCHEME = "file:///";
  24. private ReactContext mReactContext;
  25. public CompdfkitPdfModule(ReactApplicationContext reactContext) {
  26. super(reactContext);
  27. this.mReactContext = reactContext;
  28. }
  29. @Override
  30. @NonNull
  31. public String getName() {
  32. return NAME;
  33. }
  34. @ReactMethod
  35. public void init_(String license) {
  36. CPDFSdk.init(mReactContext, license, true);
  37. }
  38. /**
  39. * Initialize the ComPDFKit SDK.
  40. * @param androidOnlineLicense The android platform compdfkit license key.
  41. */
  42. @ReactMethod
  43. public void initialize(String androidOnlineLicense, String iosOnlineLicense) {
  44. CPDFSdk.init(mReactContext, androidOnlineLicense, false);
  45. }
  46. /**
  47. * Display a PDF.
  48. * @param document The document URI or file path.
  49. * @param password The document password.
  50. * @param configurationJson Configuration data in JSON format.
  51. */
  52. @ReactMethod
  53. public void openDocument(String document, String password, String configurationJson) {
  54. Intent intent = new Intent(mReactContext, CPDFDocumentActivity.class);
  55. intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
  56. if (Uri.parse(document).getScheme() == null) {
  57. document = FILE_SCHEME + document;
  58. }
  59. intent.setData(Uri.parse(document));
  60. intent.putExtra(CPDFDocumentActivity.EXTRA_FILE_PASSWORD, password);
  61. CPDFConfiguration configuration = CPDFConfigurationUtils.fromJson(configurationJson);
  62. intent.putExtra(CPDFDocumentActivity.EXTRA_CONFIGURATION, configuration);
  63. mReactContext.startActivity(intent);
  64. }
  65. }