Ver código fonte

【2025】【Tools】批量模块自测

niehaoyu 1 mês atrás
pai
commit
d27f09512d

+ 97 - 9
PDF Office/PDF Master/KMClass/NewBatch/Manager/KMBatchManager.swift

@@ -414,13 +414,58 @@ extension KMBatchManager {
     
     //MARK: 水印
     func waterMarkApplay(data: KMBatchSettingItemViewModel, outputFolderPath: String) {
-        
+        if let data = data as? KMBatchWatermarkModel {
+            self.waterMarkFile(outputFolderPath: outputFolderPath, data: data, filesData: self.batchFilesData)
+        }
     }
     
-    func waterMarkFile(outputFolderPath: String, data: KMBatchSettingItemViewModel, filesData: [KMBatchProcessingTableViewModel]?) {
-        
-        
+    func waterMarkFile(outputFolderPath: String, data: KMBatchWatermarkModel, filesData: [KMBatchProcessingTableViewModel]) {
+        if filesData.count != 0 {
+            for i in 0..<filesData.count {
+                let item = filesData[i]
+                var fileName = item.filePath.deletingPathExtension.lastPathComponent
+                if ((fileName.isEmpty)) {
+                    fileName = NSLocalizedString("Untitled", comment: "")
+                }
+                
+                let path = outputFolderPath + "/" + fileName + ".pdf"
+                let document = CPDFDocument.init(url: URL(fileURLWithPath: item.filePath))
+
+                if (document?.allowsPrinting == false || document?.allowsCopying == false) {
+                    let alert = NSAlert()
+                    alert.alertStyle = .critical
+                    alert.messageText = "此文档不允许修改"
+                    alert.runModal()
+                    return
+                }
+                
+                if let watermarks = document?.watermarks(), let model = data.watermarkModel, let document = document {
+                    let pageString = self.fetchValidPageIndexString(document, model: item)
+                    let watermark = KMPDFWatermarkData.returnWaterMarkWith(model, document)
+                    watermark.pageString = pageString
+                    document.addWatermark(watermark)
+                }
+                
+                if (FileManager.default.fileExists(atPath: path)) {
+                    try?FileManager.default.removeItem(atPath: path)
+                }
+                
+                let result = document?.write(to: URL(fileURLWithPath: path)) ?? false
+                if (result) {
+                    KMPrint("removeFile成功")
+                    self.itemSuccess(item: item)
+                } else {
+                    KMPrint("removeFile失败")
+                    self.itemFailure(item: item, error: nil)
+                }
+                if i == filesData.count - 1 {
+                    self.batchSuccess()
+                }
+                NSWorkspace.shared.activateFileViewerSelecting([URL(fileURLWithPath: path)])
+            }
+        }
     }
+    
     //MARK: 背景
     func backgroundApplay(data: KMBatchSettingItemViewModel, outputFolderPath: String) {
         if let data = data as? KMBatchBackgroundModel {
@@ -530,17 +575,60 @@ extension KMBatchManager {
                 NSWorkspace.shared.activateFileViewerSelecting([URL(fileURLWithPath: path)])
             }
         }
-        
-        
     }
     
     //MARK: 贝茨码
     func batesApplay(data: KMBatchSettingItemViewModel, outputFolderPath: String) {
-        
+        if let data = data as? KMBatchBatesModel {
+            self.batesFile(outputFolderPath: outputFolderPath, data: data, filesData: self.batchFilesData)
+        }
     }
     
-    func batesFile(outputFolderPath: String, data: KMBatchSettingItemViewModel, filesData: [KMBatchProcessingTableViewModel]?) {
-        
+    func batesFile(outputFolderPath: String, data: KMBatchBatesModel, filesData: [KMBatchProcessingTableViewModel]) {
+        if filesData.count != 0 {
+            for i in 0..<filesData.count {
+                let item = filesData[i]
+                var fileName = item.filePath.deletingPathExtension.lastPathComponent
+                if ((fileName.isEmpty)) {
+                    fileName = NSLocalizedString("Untitled", comment: "")
+                }
+                
+                let path = outputFolderPath + "/" + fileName + ".pdf"
+                let document = CPDFDocument.init(url: URL(fileURLWithPath: item.filePath))
+
+                if (document?.allowsPrinting == false || document?.allowsCopying == false) {
+                    let alert = NSAlert()
+                    alert.alertStyle = .critical
+                    alert.messageText = "此文档不允许修改"
+                    alert.runModal()
+                    return
+                }
+                
+                if let bates = document?.bates(), let model = data.batesModel, let document = document {
+                    let pageString = self.fetchValidPageIndexString(document, model: item)
+                    KMBatesManager.defaultManager.updateCPDFBates(bates, withModel: model, Int(document.pageCount))
+                    bates.pageString = pageString
+                    bates.update()
+                }
+                
+                if (FileManager.default.fileExists(atPath: path)) {
+                    try?FileManager.default.removeItem(atPath: path)
+                }
+                
+                let result = document?.write(to: URL(fileURLWithPath: path)) ?? false
+                if (result) {
+                    KMPrint("removeFile成功")
+                    self.itemSuccess(item: item)
+                } else {
+                    KMPrint("removeFile失败")
+                    self.itemFailure(item: item, error: nil)
+                }
+                if i == filesData.count - 1 {
+                    self.batchSuccess()
+                }
+                NSWorkspace.shared.activateFileViewerSelecting([URL(fileURLWithPath: path)])
+            }
+        }
     }
     
     //MARK: 移除

+ 4 - 2
PDF Office/PDF Master/KMClass/NewBatch/View/Setting/Background/KMBatchBackgroundView.swift

@@ -30,6 +30,8 @@ class KMBatchBackgroundView: KMBatchSettingItemView {
     var editSubType: KMPDFEditSubModeType = .none {
         didSet {
             resetUI()
+            
+            reloadInfoView()
         }
     }
     
@@ -216,10 +218,10 @@ extension KMBatchBackgroundView: KMBackgroundPropertyControllerDelegate {
         saveTemplateMessage.reloadData()
         saveTemplateMessage.show(inView: self, autoHideSeconde: 2)
         
-        editSubType = .template
-        
         templatesController.selectedBackground = data
         
+        editSubType = .template
+        
         reloadData()
         
         KMBackgroundManager.defaultManager.defaultModel = KMBackgroundModel()

+ 11 - 1
PDF Office/PDF Master/KMClass/NewBatch/View/Setting/BatesNumber/KMBatchBatesNumberView.swift

@@ -8,6 +8,10 @@
 import Cocoa
 import KMComponentLibrary
 
+class KMBatchBatesModel: KMBatchSettingItemViewModel {
+    var batesModel: KMBatesModel?
+}
+
 class KMBatchBatesNumberView: KMBatchSettingItemView {
     @IBOutlet weak var itemContentView: NSView!
     
@@ -40,6 +44,8 @@ class KMBatchBatesNumberView: KMBatchSettingItemView {
         }
     }
     
+    var data: KMBatchBatesModel = KMBatchBatesModel()
+    
     //MARK: - func
     override func draw(_ dirtyRect: NSRect) {
         super.draw(dirtyRect)
@@ -189,7 +195,11 @@ class KMBatchBatesNumberView: KMBatchSettingItemView {
     }
     
     @objc func applyButtonAction(_ sender: NSButton) {
-        
+        self.data.batesModel = self.batesModel
+         
+        if self.batchExport != nil {
+            self.batchExport!(self, self.data)
+        }
     }
     
     

+ 1 - 2
PDF Office/PDF Master/KMClass/NewBatch/View/Setting/KMBatchSettingView.swift

@@ -119,8 +119,7 @@ class KMBatchSettingView: BaseXibView {
             case .background:
                 resultView = KMBatchBackgroundView.init()
                 if let view = resultView as? KMBatchBackgroundView {
-                    view.editSubType = .template 
-                    view.reloadInfoView()
+                    view.editSubType = .template
                 }
                 resultView.batchExport = { [unowned self] (view, data) in
                     KMBatchManager.manager.batch(type: type, data: data)

+ 12 - 1
PDF Office/PDF Master/KMClass/NewBatch/View/Setting/Watermark/KMBatchWatermarkView.swift

@@ -8,6 +8,10 @@
 import Cocoa
 import KMComponentLibrary
 
+class KMBatchWatermarkModel: KMBatchSettingItemViewModel {
+    var watermarkModel: KMPDFWatermarkData?
+}
+
 class KMBatchWatermarkView: KMBatchSettingItemView {
     @IBOutlet weak var waterContentView: NSView!
     
@@ -32,6 +36,9 @@ class KMBatchWatermarkView: KMBatchSettingItemView {
         }
     }
     
+    var data: KMBatchWatermarkModel = KMBatchWatermarkModel()
+    
+    //MARK: - func
     override func setup() {
         super.setup()
          
@@ -149,7 +156,11 @@ class KMBatchWatermarkView: KMBatchSettingItemView {
     }
     
     @objc func applyButtonAction(_ sender: NSButton) {
-        
+        self.data.watermarkModel = self.currentWatermarkData
+         
+        if self.batchExport != nil {
+            self.batchExport!(self, self.data)
+        }
     }
     
 }