RCTDocumentManager.swift 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. //
  2. // RCTDocumentManager.swift
  3. // react-native-compdfkit-pdf
  4. //
  5. // Copyright © 2014-2024 PDF Technologies, Inc. All Rights Reserved.
  6. //
  7. // THIS SOURCE CODE AND ANY ACCOMPANYING DOCUMENTATION ARE PROTECTED BY INTERNATIONAL COPYRIGHT LAW
  8. // AND MAY NOT BE RESOLD OR REDISTRIBUTED. USAGE IS BOUND TO THE ComPDFKit LICENSE AGREEMENT.
  9. // UNAUTHORIZED REPRODUCTION OR DISTRIBUTION IS SUBJECT TO CIVIL AND CRIMINAL PENALTIES.
  10. // This notice may not be removed from this file.
  11. //
  12. import UIKit
  13. import ComPDFKit
  14. @objc(CPDFViewManager)
  15. class RCTDocumentManager: NSObject, RCTBridgeModule {
  16. static func moduleName() -> String! {
  17. return "RCTDocumentManager"
  18. }
  19. internal var bridge: RCTBridge!
  20. @objc func readerView() -> RCTCPDFReaderView {
  21. self.bridge.module(for: RCTCPDFReaderView.self) as! RCTCPDFReaderView
  22. }
  23. @objc(save: withResolver: withRejecter:)
  24. func save(tag: Int, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
  25. DispatchQueue.main.async {
  26. let reader = self.readerView()
  27. reader.saveDocument(forCPDFViewTag: tag) { success in
  28. if success {
  29. resolve(success)
  30. } else {
  31. reject("save_failed", "Failed to save document", nil);
  32. }
  33. }
  34. }
  35. }
  36. func setMargins(tag : Int, left : Int, top : Int, right : Int, bottom : Int) -> Void {
  37. // TODO: 设置阅读区域边距
  38. // 无返回值
  39. }
  40. func removeAllAnnotations(tag : Int, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock){
  41. // TODO: 删除当前文档所有注释, 返回true、false
  42. }
  43. func importAnnotations(tag : Int, xfdfFile : String, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
  44. // TODO: 导入注释, 返回:true、false
  45. resolve(true)
  46. }
  47. func exportAnnotations(tag : Int, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock){
  48. // TODO: 导出注释,返回:xfdf文件路径
  49. resolve("xxxx.xfdf")
  50. }
  51. func setDisplayPageIndex(tag : Int, pageIndex : Int) -> Void {
  52. // TODO: 跳转到指定页码, 无返回值
  53. }
  54. func getCurrentPageIndex(tag : Int,resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
  55. // TODO: 返回当前页码
  56. }
  57. func hasChange(tag : Int, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock){
  58. // TODO: 返回当前展示的文档是否存在修改, 返回:true、false
  59. }
  60. }