App.tsx 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. /**
  2. * Copyright © 2014-2023 PDF Technologies, Inc. All Rights Reserved.
  3. *
  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. import React, { Component } from 'react';
  10. import DocumentPicker from 'react-native-document-picker'
  11. import {
  12. StyleSheet,
  13. Text,
  14. View,
  15. TouchableOpacity,
  16. SafeAreaView
  17. } from 'react-native';
  18. import { ComPDFKit, CPDFViewMode } from 'react-native-compdfkit-pdf';
  19. import { CPDFAnnotationType, CPDFConfigTool, CPDFDisplayMode } from '../src/configuration/CPDFOptions';
  20. import { Platform } from 'react-native';
  21. type Props = {
  22. };
  23. export default class App extends Component<Props> {
  24. state = {
  25. versionCode: ''
  26. }
  27. constructor(props: Props) {
  28. super(props)
  29. this.initialize()
  30. this.getSDKBuildTag()
  31. this.getVersionCode()
  32. }
  33. async getVersionCode() {
  34. var version = await ComPDFKit.getVersionCode()
  35. console.log("ComPDFKitRN", "getVersionCode:", version)
  36. this.setState({
  37. versionCode: version
  38. })
  39. }
  40. async initialize() {
  41. var result = await ComPDFKit.initialize('vxwRHJC9RDKK0He2jTpepBkrolOnPQt7bxjfIiqqcJc=', 'vTXxqCm2rutpV67wRy+UnBSJzDBwG0/DLjiLL61zxxc=')
  42. console.log("ComPDFKitRN", "initialize:", result)
  43. }
  44. async init_() {
  45. var result = await ComPDFKit.init_('77/0LbrlNGNUEKWCmu4/iG3ZlSv4+47zdgsGOxDX3vGx64O2BtvxJyDzgqNvAmqU8eM0G0ALjeYHtV3vrL7mNtev5BHDGmg2ye3WigSqpN8y0gOPPutXKAQyW9vM+cC81ws4sjcXt2vphQXKjRGeVnQodoe+0FbKzffywJ2DORo32GO9qJ51qIKGmXhokKOuQIDJ2eDgQDkIwUChC+yVz088AjTSDSYOe0UobLHOpkP6Ou4qbkx6pKJ+WexOqFxIb90cAQVVa02NpLJdSu8VPIDJNzuwds1y2RLVD6lgBj8Zez+CGDL4JzeYnYhQhlOZNLXJQ4ZqkN/eHcvgIlpzL2u0lH1oY17eVN2TRW5amzqOuoo5orgnAvMGFLdEwMLlC+K5dn2h1bB4RjP9ZTqgoNaGtyKiQ+FhqHLgPV+faNMUdCBlrq4FNafN5ZoZwbHn4fzUh88DO0481O/H5F0zHak/PQJR7Gu1OfN94Q2uALpL4t3i0S76cdEeJ6wRw44AH0PQikF7jWqqmAB1bqcqsgePNE97RigZwYiDA0p2AGWxhBg2+pgZD9EPOOjdtWPXK9LTAop75OQ9whjDWL1y0LTP/JhOPQIOghNPepj3VtjzSVrUbTBFktXeDGlz0NH9TnbvjZoxJRlcNN1+9x100WEfF4A2XbJZEjcpxV9tk1r9UpDZNXkuRC5cqSCOndk3WcAQjbXfQ4Bb9zwxbcvORsTU9lFmAbRS4KFSnCfN/gMqYb0QzhAKt6Wube1sAVkj4n7AvEss/0SdC9zk5m0/E/c0dDshJ3XKSLU/PaI1wbf/SnQhn+gZICJWg9lWCAi16kSStNvD+Tlg8iXYGXcUT967Gjfe/7Au1tVEU3oE60OBrEnSCSSJJt3MWbr/52CRpTtQ6bC+eZK0ijaRGZnS60G4A4sqfUpH3dRQ0juEnz0zrfyaQi4TKGCC1SzT5YPtsIEy4Stbdh3CCWoYV8SehrEkB58JHrolHhy5cVPV2RRYE30JXG5sJOlwb6wuhHVLlanJ7OE5ewEJCtZIHMkJ/rlfinOunS0G9GL2IMBwsyfOB1Cxl+yXx4V3li2ymawe')
  46. console.log("ComPDFKitRN", "init_:", result)
  47. }
  48. async getSDKBuildTag() {
  49. var buildTag = await ComPDFKit.getSDKBuildTag()
  50. console.log("ComPDFKitRN", "getSDKBuildTag:", buildTag)
  51. }
  52. render() {
  53. return (
  54. <SafeAreaView style={{ flex: 1 }}>
  55. <View style={styles.scaffold}>
  56. <View style={styles.appBar}>
  57. <Text style={styles.mediumTitle}>
  58. ComPDFKit PDF SDK for ReactNative
  59. </Text>
  60. </View>
  61. <View style={styles.container}>
  62. <TouchableOpacity onPress={() => {
  63. var samplePDF: string = Platform.OS == 'android' ? 'file:///android_asset/pdf_document.pdf' : 'PDF_Document.pdf'
  64. ComPDFKit.openDocument(samplePDF, '', ComPDFKit.getDefaultConfig({
  65. modeConfig:{
  66. initialViewMode: CPDFViewMode.ANNOTATIONS
  67. }
  68. }))
  69. }}>
  70. <View style={styles.funItem}>
  71. <Text style={{ fontWeight: 'bold' }}>{'Open Sample'}</Text>
  72. </View>
  73. </TouchableOpacity>
  74. <View style={styles.dividingLine} />
  75. <TouchableOpacity onPress={() => {
  76. try {
  77. const pickerResult = DocumentPicker.pick({
  78. type: [DocumentPicker.types.pdf]
  79. });
  80. pickerResult.then(res => {
  81. console.log('path:', res[0]?.uri)
  82. ComPDFKit.openDocument(res[0]?.uri as string, '', ComPDFKit.getDefaultConfig({}))
  83. })
  84. } catch (err) {
  85. }
  86. }}>
  87. <View style={styles.funItem}>
  88. <Text style={{ fontWeight: 'bold' }}>{'Pick Document'}</Text>
  89. </View>
  90. <View style={styles.dividingLine} />
  91. </TouchableOpacity>
  92. <View style={styles.buttom}>
  93. <Text style={styles.body2}>ComPDFKit for {Platform.OS == 'android' ? 'Android' : 'iOS'} {this.state.versionCode}</Text>
  94. </View>
  95. </View>
  96. </View>
  97. </SafeAreaView>
  98. );
  99. }
  100. }
  101. const styles = StyleSheet.create({
  102. appBar: {
  103. height: 56,
  104. backgroundColor: '#FAFCFF',
  105. elevation: 4,
  106. flexDirection: "row",
  107. justifyContent: "space-between",
  108. alignItems: "center",
  109. padding: 16
  110. },
  111. mediumTitle: {
  112. fontSize: 16,
  113. },
  114. body2: {
  115. textAlign: 'center',
  116. fontSize: 12
  117. },
  118. scaffold: {
  119. flex: 1,
  120. },
  121. container: {
  122. marginHorizontal: 16,
  123. marginVertical: 8,
  124. flex: 1,
  125. // backgroundColor: '#F5FCFF',
  126. },
  127. funItem: {
  128. height: 56,
  129. justifyContent: 'center',
  130. textAlign: 'center'
  131. },
  132. dividingLine: {
  133. height: 0.5, backgroundColor: '#4D333333', width: '100%'
  134. },
  135. buttom: {
  136. flex: 1,
  137. justifyContent: 'flex-end',
  138. }
  139. });