UNPKG

@compdfkit_pdf_sdk/react_native

Version:

ComPDFKit for React Native is a comprehensive SDK that allows you to quickly add PDF functionality to Android, iOS, and React Native applications.

251 lines (250 loc) 9.35 kB
/** * Copyright © 2014-2025 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. */ import { NativeModules } from 'react-native'; import { CPDFAlignment, CPDFAnnotationType, CPDFBorderStyle, CPDFCheckStyle, CPDFConfigTool, CPDFContentEditorType, CPDFDisplayMode, CPDFFormType, CPDFLineType, CPDFThemeMode, CPDFThemes, CPDFToolbarAction, CPDFToolbarMenuAction, CPDFTypeface, CPDFViewMode } from './configuration/CPDFOptions'; import React from 'react'; const ComPDFKit = NativeModules.ComPDFKit; export { ComPDFKit }; export { CPDFViewMode, CPDFToolbarAction, CPDFToolbarMenuAction, CPDFAnnotationType, CPDFConfigTool, CPDFBorderStyle, CPDFLineType, CPDFAlignment, CPDFTypeface, CPDFContentEditorType, CPDFFormType, CPDFWidgetType, CPDFCheckStyle, CPDFDisplayMode, CPDFThemes, CPDFDocumentPermissions, CPDFDocumentEncryptAlgo } from './configuration/CPDFOptions'; export { CPDFReaderView } from './view/CPDFReaderView'; export { CPDFDocument } from './view/CPDFDocument'; export { CPDFPage } from './page/CPDFPage'; export { CPDFAnnotation } from './annotation/CPDFAnnotation'; export { CPDFWidget } from './annotation/form/CPDFWidget'; export { CPDFTextWidget } from './annotation/form/CPDFTextWidget'; export { CPDFSignatureWidget } from './annotation/form/CPDFSignatureWidget'; export { CPDFRadiobuttonWidget } from './annotation/form/CPDFRadiobuttonWidget'; export { CPDFPushbuttonWidget } from './annotation/form/CPDFPushbuttonWidget'; export { CPDFListboxWidget } from './annotation/form/CPDFListboxWidget'; export { CPDFComboboxWidget } from './annotation/form/CPDFComboboxWidget'; export { CPDFCheckboxWidget } from './annotation/form/CPDFCheckboxWidget'; ComPDFKit.getDefaultConfig = getDefaultConfig; function getDefaultConfig(overrides = {}) { const defaultConfig = { modeConfig: { initialViewMode: CPDFViewMode.VIEWER, readerOnly: false, availableViewModes: [CPDFViewMode.VIEWER, CPDFViewMode.ANNOTATIONS, CPDFViewMode.CONTENT_EDITOR, CPDFViewMode.FORMS, CPDFViewMode.SIGNATURES] }, toolbarConfig: { mainToolbarVisible: true, androidAvailableActions: [CPDFToolbarAction.THUMBNAIL, CPDFToolbarAction.SEARCH, CPDFToolbarAction.BOTA, CPDFToolbarAction.MENU], iosLeftBarAvailableActions: [CPDFToolbarAction.BACK, CPDFToolbarAction.THUMBNAIL], iosRightBarAvailableActions: [CPDFToolbarAction.SEARCH, CPDFToolbarAction.BOTA, CPDFToolbarAction.MENU], availableMenus: [CPDFToolbarMenuAction.VIEW_SETTINGS, CPDFToolbarMenuAction.DOCUMENT_EDITOR, CPDFToolbarMenuAction.DOCUMENT_INFO, CPDFToolbarMenuAction.WATERMARK, CPDFToolbarMenuAction.SECURITY, CPDFToolbarMenuAction.FLATTENED, CPDFToolbarMenuAction.SAVE, CPDFToolbarMenuAction.SHARE, CPDFToolbarMenuAction.OPEN_DOCUMENT, CPDFToolbarMenuAction.SNIP] }, annotationsConfig: { annotationAuthor: '', availableTypes: [CPDFAnnotationType.NOTE, CPDFAnnotationType.HIGHLIGHT, CPDFAnnotationType.UNDERLINE, CPDFAnnotationType.SQUIGGLY, CPDFAnnotationType.STRIKEOUT, CPDFAnnotationType.INK, CPDFAnnotationType.CIRCLE, CPDFAnnotationType.SQUARE, CPDFAnnotationType.ARROW, CPDFAnnotationType.LINE, CPDFAnnotationType.FREETEXT, CPDFAnnotationType.SIGNATURE, CPDFAnnotationType.STAMP, CPDFAnnotationType.PICTURES, CPDFAnnotationType.LINK, CPDFAnnotationType.SOUND], availableTools: [CPDFConfigTool.SETTING, CPDFConfigTool.UNDO, CPDFConfigTool.REDO], initAttribute: { note: { color: '#1460F3', alpha: 255 }, highlight: { color: '#1460F3', alpha: 77 }, underline: { color: '#1460F3', alpha: 77 }, squiggly: { color: '#1460F3', alpha: 77 }, strikeout: { color: '#1460F3', alpha: 77 }, ink: { color: '#1460F3', alpha: 100, borderWidth: 10 }, square: { fillColor: '#1460F3', borderColor: '#000000', colorAlpha: 128, borderWidth: 2, borderStyle: { style: CPDFBorderStyle.SOLID, dashGap: 8.0 } }, circle: { fillColor: '#1460F3', borderColor: '#000000', colorAlpha: 128, borderWidth: 2, borderStyle: { style: CPDFBorderStyle.SOLID, dashGap: 8.0 } }, line: { borderColor: '#1460F3', borderAlpha: 100, borderWidth: 5, borderStyle: { style: CPDFBorderStyle.SOLID, dashGap: 8.0 } }, arrow: { borderColor: '#1460F3', borderAlpha: 100, borderWidth: 5, borderStyle: { style: CPDFBorderStyle.SOLID, dashGap: 8.0 }, startLineType: CPDFLineType.NONE, tailLineType: CPDFLineType.OPEN_ARROW }, freeText: { fontColor: '#000000', fontColorAlpha: 255, fontSize: 30, isBold: false, isItalic: false, alignment: CPDFAlignment.LEFT, typeface: CPDFTypeface.HELVETICA } } }, contentEditorConfig: { availableTypes: [CPDFContentEditorType.EDITOR_TEXT, CPDFContentEditorType.EDITOR_IMAGE], availableTools: [CPDFConfigTool.SETTING, CPDFConfigTool.UNDO, CPDFConfigTool.REDO], initAttribute: { text: { fontColor: '#000000', fontColorAlpha: 255, fontSize: 30, isBold: false, isItalic: false, typeface: CPDFTypeface.HELVETICA, alignment: CPDFAlignment.LEFT } } }, formsConfig: { availableTypes: [CPDFFormType.TEXT_FIELD, CPDFFormType.CHECKBOX, CPDFFormType.RADIO_BUTTON, CPDFFormType.LISTBOX, CPDFFormType.COMBOBOX, CPDFFormType.SIGNATURES_FIELDS, CPDFFormType.PUSH_BUTTON], availableTools: [CPDFConfigTool.UNDO, CPDFConfigTool.REDO], initAttribute: { textField: { fillColor: '#DDE9FF', borderColor: '#1460F3', borderWidth: 2, fontColor: '#000000', fontSize: 20, isBold: false, isItalic: false, alignment: CPDFAlignment.LEFT, multiline: true, typeface: CPDFTypeface.HELVETICA }, checkBox: { fillColor: '#DDE9FF', borderColor: '#1460F3', borderWidth: 2, checkedColor: '#43474D', isChecked: false, checkedStyle: CPDFCheckStyle.CHECK }, radioButton: { fillColor: '#DDE9FF', borderColor: '#1460F3', borderWidth: 2, checkedColor: '#43474D', isChecked: false, checkedStyle: CPDFCheckStyle.CIRCLE }, listBox: { fillColor: '#DDE9FF', borderColor: '#1460F3', borderWidth: 2, fontColor: '#000000', fontSize: 20, typeface: CPDFTypeface.HELVETICA, isBold: false, isItalic: false }, comboBox: { fillColor: '#DDE9FF', borderColor: '#1460F3', borderWidth: 2, fontColor: '#000000', fontSize: 20, typeface: CPDFTypeface.HELVETICA, isBold: false, isItalic: false }, pushButton: { fillColor: '#DDE9FF', borderColor: '#1460F3', borderWidth: 2, fontColor: '#000000', fontSize: 20, title: 'Button', typeface: CPDFTypeface.HELVETICA, isBold: false, isItalic: false }, signaturesFields: { fillColor: '#DDE9FF', borderColor: '#000000', borderWidth: 2 } } }, readerViewConfig: { linkHighlight: true, formFieldHighlight: true, displayMode: CPDFDisplayMode.SINGLE_PAGE, continueMode: true, verticalMode: true, cropMode: false, themes: CPDFThemes.LIGHT, enableSliderBar: true, enablePageIndicator: true, pageScale: 1.0, margins: [0, 0, 0, 0], pageSpacing: 10, pageSameWidth: true }, global: { themeMode: CPDFThemeMode.SYSTEM, fileSaveExtraFontSubset: true, watermark: { saveAsNewFile: true } } }; return JSON.stringify(mergeDeep(defaultConfig, overrides), null, 2); } function mergeDeep(defaults, overrides) { const merged = { ...defaults }; for (const key in overrides) { if (Array.isArray(overrides[key]) && Array.isArray(defaults[key])) { merged[key] = [...overrides[key]]; } else if (overrides[key] instanceof Object && key in defaults) { merged[key] = mergeDeep(defaults[key], overrides[key]); } else { merged[key] = overrides[key]; } } return merged; } const PDFReaderContext = /*#__PURE__*/React.createContext(null); export default PDFReaderContext; //# sourceMappingURL=index.js.map