// // RCTDocumentManager.swift // react-native-compdfkit-pdf // // 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. // import UIKit import ComPDFKit @objc(CPDFViewManager) class RCTDocumentManager: NSObject, RCTBridgeModule { static func moduleName() -> String! { return "RCTDocumentManager" } internal var bridge: RCTBridge! @objc func readerView() -> RCTCPDFReaderView { self.bridge.module(for: RCTCPDFReaderView.self) as! RCTCPDFReaderView } @objc(save: withResolver: withRejecter:) func save(tag: Int, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) { DispatchQueue.main.async { let reader = self.readerView() reader.saveDocument(forCPDFViewTag: tag) { success in if success { resolve(success) } else { reject("save_failed", "Failed to save document", nil); } } } } func setMargins(tag : Int, left : Int, top : Int, right : Int, bottom : Int) -> Void { // TODO: 设置阅读区域边距 // 无返回值 } func removeAllAnnotations(tag : Int, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock){ // TODO: 删除当前文档所有注释, 返回true、false } func importAnnotations(tag : Int, xfdfFile : String, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) { // TODO: 导入注释, 返回:true、false resolve(true) } func exportAnnotations(tag : Int, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock){ // TODO: 导出注释,返回:xfdf文件路径 resolve("xxxx.xfdf") } func setDisplayPageIndex(tag : Int, pageIndex : Int) -> Void { // TODO: 跳转到指定页码, 无返回值 } func getCurrentPageIndex(tag : Int,resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) { // TODO: 返回当前页码 } func hasChange(tag : Int, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock){ // TODO: 返回当前展示的文档是否存在修改, 返回:true、false } }