Browse Source

【综合】转档页面范围调试

tangchao 4 months ago
parent
commit
b8000a913c

+ 45 - 41
PDF Office/PDF Master/KMClass/Convert/Base/KMConvertBaseWindowController.swift

@@ -146,6 +146,7 @@ class KMConvertBaseWindowController: KMNBaseWindowController {
         }
         
         self.updateBackAndNextButtonState()
+        self.pdfPreView?.reloadUI()
     }
     
     override func initSubViews() {
@@ -572,45 +573,48 @@ class KMConvertBaseWindowController: KMNBaseWindowController {
     }
     
     internal func updatePreView(pageRange: KMPageRange, pageString: String = "") {
-//        let pages = self.getPages(pageRange, pageString: pageString)
-//        if (pages == nil || pages!.isEmpty) {
-//            let alert = NSAlert()
-//            alert.alertStyle = .warning
-//            alert.messageText = NSLocalizedString("Invalid page range or the page number is out of range. Please try again.", comment: "")
-//            alert.runModal()
-//            return
-//        }
-//        var indexs = IndexSet()
-//        for i in 0 ..< self.prePDFView!.document.pageCount  {
-//            indexs.insert(IndexSet.Element(i))
-//        }
-//        self.prePDFView?.document.removePage(at: indexs)
-//
-//        #if DEBUG
-//        let pageIndexs = self.getPageIndexs(pageRange, pageString: pageString)
-//        if (pageIndexs != nil) {
-//            for i in pageIndexs! {
-//
-//                KMPrint(i)
-//            }
-//        }
-//        #endif
-////        self.prePDFView.document?.importPages(pageIndexs!, from: self.documentModel.document, at: 0)
-//        for page in pages! {
-//            self.prePDFView?.document.insertPageObject(page, at: self.prePDFView!.document.pageCount)
-//        }
-//        DispatchQueue.main.async {
-//            self.prePDFView?.layoutDocumentView()
-//            self.prePDFView?.setNeedsDisplayForVisiblePages()
-//            self.prePDFView?.goToFirstPage(nil)
-//
-//            let number: Int = Int(self.prePDFView!.document!.pageCount)
+        let pages = self.getPages(pageRange, pageString: pageString)
+        if (pages == nil || pages!.isEmpty) {
+            let alert = NSAlert()
+            alert.alertStyle = .warning
+            alert.messageText = NSLocalizedString("Invalid page range or the page number is out of range. Please try again.", comment: "")
+            alert.runModal()
+            return
+        }
+        var indexs = IndexSet()
+        let document = self.pdfPreView?.pdfPreView.pdfView.document
+        for i in 0 ..< document!.pageCount  {
+            indexs.insert(IndexSet.Element(i))
+        }
+        document?.removePage(at: indexs)
+
+        #if DEBUG
+        let pageIndexs = self.getPageIndexs(pageRange, pageString: pageString)
+        if (pageIndexs != nil) {
+            for i in pageIndexs! {
+
+                KMPrint(i)
+            }
+        }
+        #endif
+//        self.prePDFView.document?.importPages(pageIndexs!, from: self.documentModel.document, at: 0)
+        for page in pages! {
+            document?.insertPageObject(page, at: document?.pageCount ?? 0)
+        }
+        DispatchQueue.main.async {
+            let prePDFView = self.pdfPreView?.pdfPreView.pdfView
+            prePDFView?.layoutDocumentView()
+            prePDFView?.setNeedsDisplayForVisiblePages()
+            prePDFView?.goToFirstPage(nil)
+
+            let number: Int = Int(prePDFView!.document!.pageCount)
 //            self.totalNumberLabel.stringValue = "\(number)"
-//            self.currentPageIndex = 1
+            self.currentPageIndex = 1
 //            self.numberTextField.stringValue = "1"
-//
-//            self.updateBackAndNextButtonState()
-//        }
+
+            self.updateBackAndNextButtonState()
+            self.pdfPreView?.reloadUI()
+        }
     }
     
     private func getPageIndexs(_ pageRange: KMPageRange, pageString: String = "") -> IndexSet? {
@@ -698,10 +702,10 @@ class KMConvertBaseWindowController: KMNBaseWindowController {
                 pages.append(page!)
             }
         } else if (pageRange == .current) {
-//            let page = self.prePDFView?.currentPage()
-//            if (page != nil) {
-//                pages.append(page!)
-//            }
+            let page = self.pdfPreView?.pdfPreView.pdfView.currentPage()
+            if (page != nil) {
+                pages.append(page!)
+            }
         } else if (pageRange == .custom) {
             let array = self.findSelectPage(pageRangeString: pageString)
             if array.count == 0 {

+ 0 - 19
PDF Office/PDF Master/KMClass/Convert/View/KMConvertOCRSettingItemView.swift

@@ -105,7 +105,6 @@ class KMConvertOCRSettingItemView: KMConvertBaseView {
         set {
             self._languageIndex = newValue
             
-//            self._languageVC?.selectItem(at: newValue)
             self.languageView_.selectItemAtIndex(newValue)
         }
     }
@@ -122,8 +121,6 @@ class KMConvertOCRSettingItemView: KMConvertBaseView {
     override func initSubViews() {
         super.initSubViews()
         
-//        self._checkVC = KMDesignButton(withType: .CheckBox)
-//        self.checkBox.contentView = self._checkVC!.view
         self.checkBox.contentView = self.checkView_
         
         self._languageVC = KMDesignSelect(withType: .Combox)
@@ -138,25 +135,9 @@ class KMConvertOCRSettingItemView: KMConvertBaseView {
         self.titleLabel.font = .SFProTextRegularFont(12)
         
         self.checkBox.fillColor = .clear
-//        self._checkVC?.target = self
-//        self._checkVC?.action = #selector(checkBoxAction)
-//        self._checkVC?.stringValue = NSLocalizedString("Recognize text if needed", comment: "")
-//        self._checkVC?.checkbox_radio()
-//        self._checkVC?.state = .Custom
         self.checkView_.setTarget(self, action: #selector(checkBoxAction))
         
         self.languageBox.fillColor = .clear
-//        self._languageVC?.delete = self
-
-//        self._languageVC?.isScrollPop = true
-//        self._languageVC?.removeAllItems()
-//        self._languageVC?.addItems(withObjectValues: KMPDFConvertManager.defaultManager.languages_asc_strings)
-//        self._languageVC?.addItems(withObjectValues: self.languages_)
-//        if (self.languageIndex < self._languageVC!.numberOfItems) {
-//            self._languageVC?.selectItem(at: self.languageIndex)
-//        } else {
-//            self._languageVC?.selectItem(at: 2)
-//        }
         self.languageBox.contentView = self.languageView_
         
         var menuItemArr: [ComponentMenuitemProperty] = []

+ 21 - 32
PDF Office/PDF Master/KMClass/Convert/View/KMConvertPageRangeSettingItemView.swift

@@ -46,20 +46,6 @@ class KMConvertPageRangeSettingItemView: KMConvertBaseView {
     override func initSubViews() {
         super.initSubViews()
         
-//        self.pageSizeVC = KMDesignSelect.init(withType: .Combox)
-////        self.pageSizeBox.contentView = self.pageSizeVC!.view
-//        self.pageSizeVC?.removeAllItems()
-//        self.pageSizeVC?.addItems(withObjectValues: [KMTools.pageRangeTypeString(pageRange: .all),
-//                                               KMTools.pageRangeTypeString(pageRange: .current),
-//                                               KMTools.pageRangeTypeString(pageRange: .odd),
-//                                               KMTools.pageRangeTypeString(pageRange: .even),
-//                                               KMTools.pageRangeTypeString(pageRange: .custom)])
-//        self.pageSizeVC?.selectItem(at: 0)
-//        self.pageSizeVC?.editable = false //默认属性,初始化可不设置
-//        self.pageSizeVC?.delete = self
-//        self.pageSizeVC?.placeholderString = NSLocalizedString("eg. 1,3-5,10", comment: "")
-//        self.pageSizeVC?.updateUI()
-        
         self.pageSizeBox.contentView = self.pageRangeView_
         
         let strings = [KMTools.pageRangeTypeString(pageRange: .all),
@@ -82,7 +68,7 @@ class KMConvertPageRangeSettingItemView: KMConvertBaseView {
         
         pageRangeView_.selectItemAtIndex(0)
         pageRangeView_.properties.creatable = false
-        pageRangeView_.properties.text = ""
+        pageRangeView_.properties.text = menuItemArr.first?.text
 //        KMNTools.parseIndexPathsSet(indexSets: selectionIndexPaths)
         pageRangeView_.reloadData()
     }
@@ -161,25 +147,28 @@ extension KMConvertPageRangeSettingItemView: KMSelectPopButtonDelegate {
 
 extension KMConvertPageRangeSettingItemView: ComponentSelectDelegate {
     func componentSelectDidSelect(view: ComponentSelect?, menuItemProperty: ComponentMenuitemProperty?) {
-//        if(view == splitRangeSelect) {
-//            let pageRangeSelectIndex = splitRangeSelect.indexOfSelect()
-//            var isEditIndex:Int = 2
-//
+        if(view == pageRangeView_) {
+            let pageRangeSelectIndex = pageRangeView_.indexOfSelect()
+            var isEditIndex:Int = 4
+
 //            if(orgDocument?.pageCount ?? 0 <= 1) {
 //                isEditIndex = 1
 //            }
-//            if (pageRangeSelectIndex == isEditIndex) {
-//                splitRangeSelect.properties.text = ""
-//
-//                splitRangeSelect.properties.placeholder = KMLocalizedString("e.g. 1,3-5,10")
-//                splitRangeSelect.properties.creatable = true
-//            } else {
-//                splitRangeSelect.properties.placeholder = ""
-//                splitRangeSelect.properties.creatable = false
-//            }
-//            splitRangeSelect.reloadData()
-//
-//
-//        }
+            if (pageRangeSelectIndex == isEditIndex) {
+                pageRangeView_.properties.text = ""
+
+                pageRangeView_.properties.placeholder = KMLocalizedString("e.g. 1,3-5,10")
+                pageRangeView_.properties.creatable = true
+            } else {
+                pageRangeView_.properties.placeholder = ""
+                pageRangeView_.properties.creatable = false
+            }
+            pageRangeView_.reloadData()
+            
+            guard let callback = self.itemClick else {
+                return
+            }
+            callback(pageRangeSelectIndex)
+        }
     }
 }

+ 11 - 1
PDF Office/PDF Master/KMClass/Convert/View/KMConvertSettingView.swift

@@ -83,7 +83,17 @@ class KMConvertSettingView: KMConvertBaseView {
                         return
                     }
                     
-                    callback(KMPageRange(rawValue: index)!)
+                    var value: KMPageRange = .all
+                    if index == 1 {
+                        value = .current
+                    } else if index == 2 {
+                        value = .odd
+                    } else if index == 3 {
+                        value = .even
+                    } else if index == 4 {
+                        value = .custom
+                    }
+                    callback(value)
                 }
                 
                 newValue?.textDidEndEditingCallback = { [unowned self] textString in

+ 24 - 0
PDF Office/PDF Master/KMClass/Tools/PDFPreview/KMNPreView.swift

@@ -61,6 +61,8 @@ class KMNPreView: NSView, NibLoadable {
     
     func initSubviews() {
         self.paginationBox.contentView = self.pagination_
+        pagination_.properties = ComponentPaginationProperty(doubleArrow_show: false, currentIndex: 0, totalCount: 1)
+        pagination_.delegate = self
     }
     
     func initDefaultValue() {
@@ -71,4 +73,26 @@ class KMNPreView: NSView, NibLoadable {
         pdfPreView.setFileUrl(fileUrl, password: password)
     }
     
+    func reloadUI() {
+        pagination_.properties.totalCount = Int(self.pdfPreView.pdfView.document.pageCount)
+        pagination_.properties.currentIndex = self.pdfPreView.pdfView.currentPageIndex + 1
+        pagination_.reloadData()
+    }
+    
+}
+
+//MARK: - ComponentPaginationDelegate
+extension KMNPreView: ComponentPaginationDelegate {
+    public func componentPaginationDidValueChanged(pagination: ComponentPagination) {
+//        if choosedIndex != pagination.properties.currentIndex {
+//            choosedIndex = pagination.properties.currentIndex
+//
+//            isGo = false
+//
+//            refreshGoButton()
+        
+//        }
+        let idx = pagination.properties.currentIndex
+        self.pdfPreView.pdfView.go(toPageIndex: idx-1, animated: true)
+    }
 }