Browse Source

Merge branch 'develop_2025' of git.kdan.cc:Mac_PDF/PDF_Office into develop_2025

niehaoyu 1 month ago
parent
commit
6ca93f1555

+ 5 - 1
PDF Office/PDF Master/AppDelegate+MenuAction.swift

@@ -446,7 +446,11 @@ extension AppDelegate {
     
     @IBAction func menuItemClick_Compress(_ sender: Any) {
         if let mainVC = self.mainViewController() {
-            mainVC.showCompressController(mainVC.listView.document.documentURL)
+            
+            let model = KMBatchProcessingTableViewModel.initWithFilePath(url: mainVC.listView.document.documentURL)
+            model.password = mainVC.listView.document.password ?? ""
+            
+            mainVC.showCompressController(model: model)
         }
     }
     

+ 17 - 6
PDF Office/PDF Master/KMClass/KMPDFViewController/KMMainViewController.swift

@@ -3526,13 +3526,21 @@ struct KMNMWCFlags {
 //MARK: Compress
 extension KMMainViewController {
     func showCompressController(_ url: URL) {
-        KMPasswordInputWindow.openWindow(window: NSWindow.currentWindow(), type: .owner, url: url) { [unowned self] result, password in
-            if (result == .success) {
-                let model = KMBatchProcessingTableViewModel.initWithFilePath(url: listView.document.documentURL)
-                model.password = password ?? ""
-                model.isLock = false
-                self.showCompressController(model: model)
+        let document = CPDFDocument(url:  url)
+        document?.unlock(withPassword: model.password)
+        
+        if !document!.allowsPrinting && !document!.allowsCopying {
+            KMPasswordInputWindow.openWindow(window: NSWindow.currentWindow(), type: .owner, url: url) { [unowned self] result, password in
+                if (result == .success) {
+                    let model = KMBatchProcessingTableViewModel.initWithFilePath(url: listView.document.documentURL)
+                    model.password = password ?? ""
+                    model.isLock = false
+                    self.showCompressController(model: model)
+                }
             }
+        } else {
+            let model = KMBatchProcessingTableViewModel.initWithFilePath(url: listView.document.documentURL)
+            self.showCompressController(model: model)
         }
     }
     
@@ -3676,6 +3684,7 @@ extension KMMainViewController {
             window.km_quick_endSheet()
             if !model.saveAsPDF {
                 self?.listView.layoutDocumentView()
+                self?.needSave = true
             }
         }
     }
@@ -3698,6 +3707,8 @@ extension KMMainViewController {
 //            window.km_quick_endSheet()
             if !model.saveAsPDF {
                 self?.listView.layoutDocumentView()
+                
+                self?.needSave = true
             }
             self?.hiddenProgressWindow()
         }