// // KMBatchConvertParameter.swift // PDF Reader Pro // // Created by kdanmobile on 2023/10/25. // import Cocoa class KMBatchConvertParameter: KMBatchBaseParameter { var convertType: KMConvertWithPDFType? var allInOneSheet: Bool? // FP转excel用 var isExtreactTabel: Bool? // Com_converter 转excel用 var isRetainLayout: Bool? // NO 为流排 var dpi: Int? // 转图片用 // var extensionString: String = "" // FP方式转换需要用到 var excelContentOption: CPDFConvertExcelContentOptions? var excelWorksheetOption: CPDFConvertExcelWorksheetOptions? // 是否使用OCR var isAllowOCR = false var ocrLanguage: COCRLanguage? override init(file:KMBatchOperateFile) { super.init(file: file) self.dpi = 150 } func extensionString() -> String? { var rtString: String? = nil if self.convertType == .WordStandard || self.convertType == .WordAdvance { rtString = "docx" } else if self.convertType == .Excel { rtString = "xlsx" } else if self.convertType == .PowerPoint { rtString = "pptx" } else if self.convertType == .RTF { rtString = "rtf" } else if self.convertType == .CSV { rtString = "csv" } else if self.convertType == .HTML { rtString = "html" } else if self.convertType == .Text { rtString = "txt" } else if self.convertType == .JPEG { rtString = "jpeg" } else if self.convertType == .JPG { rtString = "jpg" } else if self.convertType == .PNG { rtString = "png" } else if self.convertType == .GIF { rtString = "gif" } else if self.convertType == .TGA { rtString = "tga" } else if self.convertType == .BMP { rtString = "bmp" } else if self.convertType == .TIFF { rtString = "tiff" } else if self.convertType == .JPEG2000 { rtString = "jp2" } else if self.convertType == .Json { rtString = "json" } return rtString } override func fetchDestinationFilepath() -> String? { if self.savePath?.count ?? 0 > 0 && self.operateFile?.filePath.count ?? 0 > 0{ if self.convertType == .JPEG || self.convertType == .CSV || self.convertType == .JPG || self.convertType == .PNG || self.convertType == .GIF || self.convertType == .TIFF || self.convertType == .TGA || self.convertType == .BMP || self.convertType == .JPEG2000{ self.outPutPath = self.getUniqueFilePath(filePath: self.savePath!.stringByAppendingPathComponent(self.operateFile!.filePath.deletingPathExtension.lastPathComponent)) if self.operateFile?.CSVParameter.isExtreactTabel ?? false { self.outPutPath = (self.outPutPath! as NSString).appendingPathExtension("zip") self.outPutPath = self.getUniqueFilePath(filePath: self.outPutPath ?? "") } return self.outPutPath } else if self.convertType == .WordStandard || self.convertType == .WordAdvance || self.convertType == .Excel || self.convertType == .PowerPoint || self.convertType == .RTF || self.convertType == .HTML || self.convertType == .Text || self.convertType == .Json { let filePath1 = self.savePath?.stringByAppendingPathComponent(self.operateFile!.filePath.getLastComponentDeleteExtension) self.outPutPath = self.getUniqueFilePath(filePath: filePath1!.stringByAppendingPathExtension(self.extensionString()!)) return self.outPutPath } } return nil } override var outPutPath: String? { set { super.outPutPath = newValue } get { let existOutPutPath = super.outPutPath if ((existOutPutPath?.isEmpty) != nil){ if ((self.savePath?.isEmpty) == nil) && ((self.operateFile?.filePath.isEmpty) == nil) { if self.convertType == .JPEG || self.convertType == .CSV || self.convertType == .JPG || self.convertType == .PNG || self.convertType == .GIF || self.convertType == .TIFF || self.convertType == .TGA || self.convertType == .BMP || self.convertType == .JPEG2000{ return self.getUniqueFilePath(filePath: self.savePath!.stringByAppendingPathComponent(self.operateFile!.filePath.lastPathComponent.deletingPathExtension)) } else if self.convertType == .WordStandard || self.convertType == .WordAdvance || self.convertType == .Excel || self.convertType == .PowerPoint || self.convertType == .RTF || self.convertType == .HTML || self.convertType == .Text || self.convertType == .Json { let filePath1 = self.savePath!.stringByAppendingPathComponent(self.operateFile!.filePath.lastPathComponent.deletingPathExtension) return self.getUniqueFilePath(filePath: filePath1.stringByAppendingPathExtension(self.extensionString()!)) } } } return super.outPutPath } } override var pagesArray: [NSNumber]? { let fullpagesArray = fetchUnlimitPagesArray() var isLimitConvert = false #if VERSION_FREE // 桌机版 if KMMemberInfo.shared.isPermitConvert { isLimitConvert = false } else { if .PNG == self.convertType || .JPEG == self.convertType || .JPG == self.convertType || .HTML == self.convertType || .Text == self.convertType || .WordStandard == self.convertType { isLimitConvert = false } else { isLimitConvert = true } } #else // 付费版 if KMMemberInfo.shared.isPermitConvert { isLimitConvert = false } else { if .PNG == self.convertType || .JPEG == self.convertType || .JPG == self.convertType || .HTML == self.convertType || .Text == self.convertType || .WordStandard == self.convertType { isLimitConvert = false } else { isLimitConvert = true } } #endif if isLimitConvert { if let cnt = fullpagesArray?.count, cnt > 10 { var newArr: [NSNumber] = [] for i in 0 ..< 10 { let item = fullpagesArray![i] newArr.append(item) } return newArr } else { return fullpagesArray } } return fullpagesArray } }