/** * Copyright © 2014-2024 PDF Technologies, Inc. All Rights Reserved. *

* THIS SOURCE CODE AND ANY ACCOMPANYING DOCUMENTATION ARE PROTECTED BY INTERNATIONAL COPYRIGHT LAW * AND MAY NOT BE RESOLD OR REDISTRIBUTED. USAGE IS BOUND TO THE ComPDFKit LICENSE AGREEMENT. * UNAUTHORIZED REPRODUCTION OR DISTRIBUTION IS SUBJECT TO CIVIL AND CRIMINAL PENALTIES. * This notice may not be removed from this file. */ package com.compdfkitpdf.reactnative; import android.content.Intent; import android.net.Uri; import androidx.annotation.NonNull; import com.compdfkit.core.document.CPDFSdk; import com.compdfkit.tools.common.pdf.CPDFConfigurationUtils; import com.compdfkit.tools.common.pdf.CPDFDocumentActivity; import com.compdfkit.tools.common.pdf.config.CPDFConfiguration; import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.ReactContext; import com.facebook.react.bridge.ReactContextBaseJavaModule; import com.facebook.react.bridge.ReactMethod; public class CompdfkitPdfModule extends ReactContextBaseJavaModule { public static final String NAME = "ComPDFKit"; public static final String FILE_SCHEME = "file:///"; private ReactContext mReactContext; public CompdfkitPdfModule(ReactApplicationContext reactContext) { super(reactContext); this.mReactContext = reactContext; } @Override @NonNull public String getName() { return NAME; } @ReactMethod public void init_(String license) { CPDFSdk.init(mReactContext, license, true); } /** * Initialize the ComPDFKit SDK. * @param androidOnlineLicense The android platform compdfkit license key. */ @ReactMethod public void initialize(String androidOnlineLicense, String iosOnlineLicense) { CPDFSdk.init(mReactContext, androidOnlineLicense, false); } /** * Display a PDF. * @param document The document URI or file path. * @param password The document password. * @param configurationJson Configuration data in JSON format. */ @ReactMethod public void openDocument(String document, String password, String configurationJson) { Intent intent = new Intent(mReactContext, CPDFDocumentActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); if (Uri.parse(document).getScheme() == null) { document = FILE_SCHEME + document; } intent.setData(Uri.parse(document)); intent.putExtra(CPDFDocumentActivity.EXTRA_FILE_PASSWORD, password); CPDFConfiguration configuration = CPDFConfigurationUtils.fromJson(configurationJson); intent.putExtra(CPDFDocumentActivity.EXTRA_CONFIGURATION, configuration); mReactContext.startActivity(intent); } }