浏览代码

【fix】【合并】同时导入附件两张图片,只会导入其中一个

tangchao 5 月之前
父节点
当前提交
8eb0694b33

+ 1 - 1
PDF Office/PDF Master/Class/Common/Tools/KMTools.swift

@@ -200,7 +200,7 @@ import Cocoa
             let path = fileURL.deletingPathExtension().path
             while fileManager.fileExists(atPath: uniqueFilePath) {
                 i += 1
-                uniqueFilePath = "\(path)(\(i).\(fileURL.pathExtension)"
+                uniqueFilePath = "\(path)(\(i)).\(fileURL.pathExtension)"
             }
         }
         return uniqueFilePath

+ 18 - 2
PDF Office/PDF Master/Class/PDFTools/Merge/MergeNew/KMMergeWindowController.swift

@@ -131,10 +131,26 @@ extension KMMergeWindowController {
                                 let document = PDFDocument()
                                 document.insert(page, at: 0)
                                 
-                                let path = self._saveImagePath() + "/" + fileURL.deletingPathExtension().lastPathComponent + ".pdf"
+                                var path = self._saveImagePath() + "/" + fileURL.deletingPathExtension().lastPathComponent + ".pdf"
+                                path = KMTools.getUniqueFilePath(filePath: path)
                                 let result = document.write(toFile: path)
                                 if result {
-                                    array.append(URL(fileURLWithPath: path))
+//                                    array.append(URL(fileURLWithPath: path))
+                                    let file = KMFileAttribute()
+                                    file.filePath = path
+                                    file.oriFilePath = fileURL.path
+                                    file.myPDFDocument = document
+                                    
+                                    let attribe = try?FileManager.default.attributesOfItem(atPath: fileURL.path)
+                                    let fileSize = attribe?[FileAttributeKey.size] as? CGFloat ?? 0
+                                    size = fileSize + size
+
+                                    if !IAPProductsManager.default().isAvailableAllFunction() && (files.count >= 2 || size > 20 * 1024 * 1024) {
+                                        KMPurchaseCompareWindowController.sharedInstance().showWindow(nil)
+                                        return
+                                    }
+                                    
+                                    self.mergeView.files.append(file)
                                 }
                             }
                         } else {

+ 19 - 1
PDF Office/PDF Master/Class/PDFTools/Merge/MergeNew/Model/KMMergeViewModel.swift

@@ -8,5 +8,23 @@
 import Cocoa
 
 class KMMergeViewModel: NSObject {
-
+    var fileUrl: URL?
+    var oriFileUrl: URL?
+    var isImage = false
+    
+    func fetchFileName() -> String? {
+        if isImage {
+            return self.oriFileUrl?.deletingPathExtension().lastPathComponent
+        } else {
+            return self.fileUrl?.deletingPathExtension().lastPathComponent
+        }
+    }
+    
+    func fetchFileExn() -> String? {
+        if isImage {
+            return self.oriFileUrl?.pathExtension
+        } else {
+            return self.fileUrl?.pathExtension
+        }
+    }
 }

+ 6 - 1
PDF Office/PDF Master/Class/PDFTools/Merge/MergeNew/View/KMMergeTableViewCell.swift

@@ -89,7 +89,12 @@ class KMMergeTableViewCell: NSTableCellView {
         guard let fileModel = fileModel else { return }
         indexLabel.stringValue = index.description
         fileImageView.image = fileModel.fileImage
-        fileNameLabel.stringValue = fileModel.filePath.lastPathComponent
+        if let oriFilePath = fileModel.oriFilePath {
+            fileNameLabel.stringValue = oriFilePath.lastPathComponent
+        } else {
+            fileNameLabel.stringValue = fileModel.filePath.lastPathComponent
+        }
+        
         pageCountLabel.stringValue = "\(fileModel.pdfDocument?.pageCount ?? 0)  \(NSLocalizedString("Pages", comment: ""))"
         sizeLabel.stringValue = self.fileSizeString(Float(fileModel.fileSize))
         

+ 16 - 0
PDF Office/PDF Reader Pro.xcodeproj/project.pbxproj

@@ -61,6 +61,9 @@
 		658FDBB52C9D90CE00EFA72E /* KMNoteFilterStateCollevtionViewItem.xib in Resources */ = {isa = PBXBuildFile; fileRef = 658FDBB12C9D90CE00EFA72E /* KMNoteFilterStateCollevtionViewItem.xib */; };
 		658FDBB62C9D90CE00EFA72E /* KMNoteFilterStateCollevtionViewItem.xib in Resources */ = {isa = PBXBuildFile; fileRef = 658FDBB12C9D90CE00EFA72E /* KMNoteFilterStateCollevtionViewItem.xib */; };
 		658FDBB72C9D90CE00EFA72E /* KMNoteFilterStateCollevtionViewItem.xib in Resources */ = {isa = PBXBuildFile; fileRef = 658FDBB12C9D90CE00EFA72E /* KMNoteFilterStateCollevtionViewItem.xib */; };
+		65AED4B32CAA55A8005C44B3 /* KMMergeViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65AED4B22CAA55A8005C44B3 /* KMMergeViewModel.swift */; };
+		65AED4B42CAA55A8005C44B3 /* KMMergeViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65AED4B22CAA55A8005C44B3 /* KMMergeViewModel.swift */; };
+		65AED4B52CAA55A8005C44B3 /* KMMergeViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65AED4B22CAA55A8005C44B3 /* KMMergeViewModel.swift */; };
 		65C9CAEA2CA16232009794E5 /* libpaddle2onnx.1.0.7.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 65C9CAE62CA16231009794E5 /* libpaddle2onnx.1.0.7.dylib */; };
 		65C9CAEB2CA16232009794E5 /* libpaddle2onnx.1.0.7.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 65C9CAE62CA16231009794E5 /* libpaddle2onnx.1.0.7.dylib */; };
 		65C9CAEC2CA16232009794E5 /* libpaddle2onnx.1.0.7.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 65C9CAE62CA16231009794E5 /* libpaddle2onnx.1.0.7.dylib */; };
@@ -5653,6 +5656,7 @@
 		658FDBAC2C9D4B9600EFA72E /* KMNoteReplyCellView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMNoteReplyCellView.xib; sourceTree = "<group>"; };
 		658FDBB02C9D90CE00EFA72E /* KMNoteFilterStateCollevtionViewItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMNoteFilterStateCollevtionViewItem.swift; sourceTree = "<group>"; };
 		658FDBB12C9D90CE00EFA72E /* KMNoteFilterStateCollevtionViewItem.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMNoteFilterStateCollevtionViewItem.xib; sourceTree = "<group>"; };
+		65AED4B22CAA55A8005C44B3 /* KMMergeViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMMergeViewModel.swift; sourceTree = "<group>"; };
 		65C9CAE62CA16231009794E5 /* libpaddle2onnx.1.0.7.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = libpaddle2onnx.1.0.7.dylib; sourceTree = "<group>"; };
 		65C9CAE72CA16232009794E5 /* ComDocumentAIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = ComDocumentAIKit.framework; sourceTree = "<group>"; };
 		65C9CAE82CA16232009794E5 /* libDocumentAI.3.3.3.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = libDocumentAI.3.3.3.dylib; sourceTree = "<group>"; };
@@ -8056,6 +8060,14 @@
 			path = Window;
 			sourceTree = "<group>";
 		};
+		65AED4B12CAA54F5005C44B3 /* Model */ = {
+			isa = PBXGroup;
+			children = (
+				65AED4B22CAA55A8005C44B3 /* KMMergeViewModel.swift */,
+			);
+			path = Model;
+			sourceTree = "<group>";
+		};
 		65C9CAFF2CA16B36009794E5 /* Resource */ = {
 			isa = PBXGroup;
 			children = (
@@ -9497,6 +9509,7 @@
 		AD1D48162AFB6B6A007AC1F0 /* MergeNew */ = {
 			isa = PBXGroup;
 			children = (
+				65AED4B12CAA54F5005C44B3 /* Model */,
 				AD1D481F2AFB6BA1007AC1F0 /* View */,
 				AD1D48172AFB6B96007AC1F0 /* KMMergeWindowController.swift */,
 				AD1D48182AFB6B96007AC1F0 /* KMMergeWindowController.xib */,
@@ -17319,6 +17332,7 @@
 				ADAC0DE12AC273D600FD4F52 /* KMOCToolClass.swift in Sources */,
 				BBAFDA792B4CDE0000278BC3 /* KMPDFCropWindowController.swift in Sources */,
 				BB14702C299DC0D100784A6A /* OIDEndSessionRequest.m in Sources */,
+				65AED4B32CAA55A8005C44B3 /* KMMergeViewModel.swift in Sources */,
 				9F0CB4A7296CF19600007028 /* KMPropertiesPanelListMenuSubVC.swift in Sources */,
 				BB4F7E8D2B0C7FE70077EC8C /* KMNoteColorCollectionViewItem.swift in Sources */,
 				AD1FE8142BD7C98300AA4A9B /* KMPDFMultipleManager.m in Sources */,
@@ -18566,6 +18580,7 @@
 				ADD1B7032946C8AD00C3FFF7 /* KMBaseTextField.swift in Sources */,
 				8942F818292B678100389627 /* KMAnnotationTableCellView.swift in Sources */,
 				BB031B8F2C47CEFA0099F7AD /* KMUserFeekbackHanddler.swift in Sources */,
+				65AED4B42CAA55A8005C44B3 /* KMMergeViewModel.swift in Sources */,
 				BB8F456A295ABDC10037EA22 /* KMWatermarkAdjectiveBaseModel.swift in Sources */,
 				BBFDFA952AF328B900E08AA2 /* KMBatchOperateManager.swift in Sources */,
 				9F0CB53A2986570600007028 /* KMDesignToken+BoxShadow.swift in Sources */,
@@ -20308,6 +20323,7 @@
 				BBEC00C1295C306400A26C98 /* KMBatesPropertyController.swift in Sources */,
 				BB003023298CEBED002DD1A0 /* KMPreferenceStepper.swift in Sources */,
 				BB146FAD299DC0D000784A6A /* GTLRBatchQuery.m in Sources */,
+				65AED4B52CAA55A8005C44B3 /* KMMergeViewModel.swift in Sources */,
 				BB2EDF72296ECE17003BCF58 /* KMPageEditThumbnailView.swift in Sources */,
 				9F1FE3E0293EE51F00E952CA /* KMMainDocument.swift in Sources */,
 			);