@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
JavaScript
/**
* 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