|
@@ -15,6 +15,7 @@ class KMBatchSettingView: BaseXibView {
|
|
|
var filesData: [KMBatchProcessingTableViewModel]? {
|
|
|
didSet {
|
|
|
currentView.filesData = filesData!
|
|
|
+ self.reloadData()
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -73,55 +74,55 @@ class KMBatchSettingView: BaseXibView {
|
|
|
switch type {
|
|
|
case .convertPDF:
|
|
|
resultView = KMBatchConvertPDFView.init()
|
|
|
- resultView.export = { [unowned self] (view, data) in
|
|
|
+ resultView.batchExport = { [unowned self] (view, data) in
|
|
|
self.convertPDFExport(data: data)
|
|
|
}
|
|
|
break
|
|
|
case .OCR:
|
|
|
resultView = KMBatchOCRView.init()
|
|
|
- resultView.export = { [unowned self] (view, data) in
|
|
|
+ resultView.batchExport = { [unowned self] (view, data) in
|
|
|
self.convertPDFExport(data: data)
|
|
|
}
|
|
|
break
|
|
|
case .compress:
|
|
|
resultView = KMBatchCompressView.init()
|
|
|
- resultView.export = { [unowned self] (view, data) in
|
|
|
+ resultView.batchExport = { [unowned self] (view, data) in
|
|
|
self.compressExport(data: data)
|
|
|
}
|
|
|
break
|
|
|
case .security:
|
|
|
resultView = KMBatchSecurityView.init()
|
|
|
- resultView.export = { [unowned self] (view, data) in
|
|
|
+ resultView.batchExport = { [unowned self] (view, data) in
|
|
|
self.securityExport(data: data)
|
|
|
}
|
|
|
break
|
|
|
case .watermark:
|
|
|
resultView = KMBatchWatermarkView.init()
|
|
|
- resultView.export = { [unowned self] (view, data) in
|
|
|
+ resultView.batchExport = { [unowned self] (view, data) in
|
|
|
self.waterMarkApplay(data: data)
|
|
|
}
|
|
|
break
|
|
|
case .background:
|
|
|
resultView = KMBatchBackgroundView.init()
|
|
|
- resultView.export = { [unowned self] (view, data) in
|
|
|
+ resultView.batchExport = { [unowned self] (view, data) in
|
|
|
self.backgroundApplay(data: data)
|
|
|
}
|
|
|
break
|
|
|
case .headerAndFooter:
|
|
|
resultView = KMBatchHeaderAndFooterView.init()
|
|
|
- resultView.export = { [unowned self] (view, data) in
|
|
|
+ resultView.batchExport = { [unowned self] (view, data) in
|
|
|
self.headAndFooterApplay(data: data)
|
|
|
}
|
|
|
break
|
|
|
case .batesNumber:
|
|
|
resultView = KMBatchBatesNumberView.init()
|
|
|
- resultView.export = { [unowned self] (view, data) in
|
|
|
+ resultView.batchExport = { [unowned self] (view, data) in
|
|
|
self.batesApplay(data: data)
|
|
|
}
|
|
|
break
|
|
|
case .batchRemove:
|
|
|
resultView = KMBatchRemoveView.init()
|
|
|
- resultView.export = { [unowned self] (view, data) in
|
|
|
+ resultView.batchExport = { [unowned self] (view, data) in
|
|
|
self.removeApplay(data: data)
|
|
|
}
|
|
|
break
|
|
@@ -168,19 +169,20 @@ extension KMBatchSettingView: KMBatchSettingViewExport {
|
|
|
for item in filesData! {
|
|
|
//创建Document
|
|
|
let filePath = item.filePath
|
|
|
- let document = PDFDocument(url: URL(fileURLWithPath: filePath))
|
|
|
- let convert = KMPDFConvert()
|
|
|
+ let document = CPDFDocument(url: URL(fileURLWithPath: filePath))
|
|
|
+
|
|
|
let settingData = data as? KMBatchConvertPDFViewModel ?? KMBatchConvertPDFViewModel()
|
|
|
- var convertType: KMPDFConvertType = .word
|
|
|
var fileName = filePath.deletingPathExtension.lastPathComponent
|
|
|
if ((fileName.isEmpty)) {
|
|
|
fileName = NSLocalizedString("Untitled", comment: "")
|
|
|
}
|
|
|
|
|
|
+ var convert = self.addConvertParameter(settingData)
|
|
|
+
|
|
|
//获取page
|
|
|
var pages:[Int] = []
|
|
|
for i in 0 ... document!.pageCount - 1 {
|
|
|
- pages.append(i+1)
|
|
|
+ pages.append(Int(i)+1)
|
|
|
}
|
|
|
|
|
|
convert.outputFolderPath = outputFolderPath
|
|
@@ -188,70 +190,14 @@ extension KMBatchSettingView: KMBatchSettingViewExport {
|
|
|
convert.outputFileName = fileName
|
|
|
convert.pages = pages
|
|
|
|
|
|
- switch settingData.convertPDFType {
|
|
|
- case .word:
|
|
|
- convertType = .word
|
|
|
- if settingData.layoutSettingType == .flowingText {
|
|
|
- convert.isAllInOneSheet = false
|
|
|
- } else {
|
|
|
- convert.isAllInOneSheet = true
|
|
|
- }
|
|
|
- case .excel:
|
|
|
- convertType = .excel
|
|
|
- if settingData.excelSetting == .separate {
|
|
|
- convert.isAllInOneSheet = false
|
|
|
- convert.isExtractTable = false
|
|
|
- } else if settingData.excelSetting == .format {
|
|
|
- convert.isAllInOneSheet = true
|
|
|
- convert.isExtractTable = false
|
|
|
- } else if settingData.excelSetting == .tables {
|
|
|
- convert.isAllInOneSheet = false
|
|
|
- convert.isExtractTable = true
|
|
|
-
|
|
|
- switch settingData.excelTablesType {
|
|
|
- case .oneTable:
|
|
|
- convert.extractTableIndex = 0
|
|
|
- case .pageTable:
|
|
|
- convert.extractTableIndex = 1
|
|
|
- case .allTable:
|
|
|
- convert.extractTableIndex = 2
|
|
|
- default:
|
|
|
- KMPrint("未找到")
|
|
|
- }
|
|
|
- }
|
|
|
- case .ppt:
|
|
|
- convertType = .ppt
|
|
|
- case .csv:
|
|
|
- convertType = .csv
|
|
|
- if settingData.csvOnlyTables {
|
|
|
- convert.isExtractTable = true
|
|
|
- switch settingData.excelTablesType {
|
|
|
- case .oneTable:
|
|
|
- convert.extractTableIndex = 0
|
|
|
- case .pageTable:
|
|
|
- convert.extractTableIndex = 1
|
|
|
- case .allTable:
|
|
|
- convert.extractTableIndex = 2
|
|
|
- default:
|
|
|
- KMPrint("未找到")
|
|
|
- }
|
|
|
- } else {
|
|
|
- convert.isExtractTable = false
|
|
|
- }
|
|
|
- case .image:
|
|
|
- convertType = .png
|
|
|
- case .html:
|
|
|
- convertType = .html
|
|
|
- case .rtf:
|
|
|
- convertType = .rtf
|
|
|
- default:
|
|
|
- KMPrint("不清楚")
|
|
|
- }
|
|
|
- convert.convertType = convertType
|
|
|
+ convert.isAllowOCR = settingData.needRecognizeText
|
|
|
+ convert.ocrLanguage = settingData.languageType
|
|
|
|
|
|
KMPDFConvertManager.defaultManager.convert(convert: convert) { [unowned self] finished, error in
|
|
|
if finished {
|
|
|
- // cancelButtonAction()
|
|
|
+ if FileManager.default.fileExists(atPath: outputFolderPath) {
|
|
|
+ NSWorkspace.shared.activateFileViewerSelecting([URL(fileURLWithPath: outputFolderPath)])
|
|
|
+ }
|
|
|
} else {
|
|
|
var errorString = ""
|
|
|
let myError: NSError = error! as NSError
|
|
@@ -286,12 +232,103 @@ extension KMBatchSettingView: KMBatchSettingViewExport {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ func addConvertParameter(_ data: KMBatchConvertPDFViewModel) -> KMPDFConvert {
|
|
|
+ let settingData = data
|
|
|
+ var convert = KMPDFConvert()
|
|
|
+
|
|
|
+ switch settingData.convertPDFType {
|
|
|
+ case .word:
|
|
|
+ convert = KMPDFConvertWord()
|
|
|
+ if settingData.layoutSettingType == .flowingText {
|
|
|
+ convert.isAllInOneSheet = false
|
|
|
+ } else {
|
|
|
+ convert.isAllInOneSheet = true
|
|
|
+ }
|
|
|
+ case .excel:
|
|
|
+ convert = KMPDFConvertExcel()
|
|
|
+ if settingData.excelSetting == .separate {
|
|
|
+ convert.isAllInOneSheet = false
|
|
|
+ convert.isExtractTable = false
|
|
|
+ } else if settingData.excelSetting == .format {
|
|
|
+ convert.isAllInOneSheet = true
|
|
|
+ convert.isExtractTable = false
|
|
|
+ } else if settingData.excelSetting == .tables {
|
|
|
+ convert.isAllInOneSheet = false
|
|
|
+ convert.isExtractTable = true
|
|
|
|
|
|
- if FileManager.default.fileExists(atPath: outputFolderPath) {
|
|
|
- NSWorkspace.shared.activateFileViewerSelecting([URL(fileURLWithPath: outputFolderPath)])
|
|
|
+ switch settingData.excelTablesType {
|
|
|
+ case .oneTable:
|
|
|
+ convert.extractTableIndex = 0
|
|
|
+ case .pageTable:
|
|
|
+ convert.extractTableIndex = 1
|
|
|
+ case .allTable:
|
|
|
+ convert.extractTableIndex = 2
|
|
|
+ default:
|
|
|
+ KMPrint("未找到")
|
|
|
}
|
|
|
}
|
|
|
+ case .ppt:
|
|
|
+ convert = KMPDFConvertPPT()
|
|
|
+ case .csv:
|
|
|
+ convert = KMPDFConvertCSV()
|
|
|
+ if settingData.csvOnlyTables {
|
|
|
+ convert.isExtractTable = true
|
|
|
+ switch settingData.excelTablesType {
|
|
|
+ case .oneTable:
|
|
|
+ convert.extractTableIndex = 0
|
|
|
+ case .pageTable:
|
|
|
+ convert.extractTableIndex = 1
|
|
|
+ case .allTable:
|
|
|
+ convert.extractTableIndex = 2
|
|
|
+ default:
|
|
|
+ KMPrint("未找到")
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ convert.isExtractTable = false
|
|
|
+ }
|
|
|
+ case .image:
|
|
|
+ convert = KMPDFConvertImage()
|
|
|
+ convert.convertType = data.imageType
|
|
|
+
|
|
|
+ var dpi: Int = 150
|
|
|
+ if data.imageDpiIndex == 0 {
|
|
|
+ dpi = 50
|
|
|
+ } else if data.imageDpiIndex == 1 {
|
|
|
+ dpi = 72
|
|
|
+ } else if data.imageDpiIndex == 2 {
|
|
|
+ dpi = 96
|
|
|
+ } else if data.imageDpiIndex == 3 {
|
|
|
+ dpi = 150
|
|
|
+ } else if data.imageDpiIndex == 4 {
|
|
|
+ dpi = 300
|
|
|
+ } else if data.imageDpiIndex == 5 {
|
|
|
+ dpi = 600
|
|
|
+ } else {
|
|
|
+ dpi = 150
|
|
|
+ }
|
|
|
+
|
|
|
+ if (convert.convertType == .jpeg) {
|
|
|
+ (convert as! KMPDFConvertImage).imageType = .JPEG
|
|
|
+ (convert as! KMPDFConvertImage).imageDpi = dpi
|
|
|
+
|
|
|
+ } else if (convert.convertType == .png) {
|
|
|
+ (convert as! KMPDFConvertImage).imageType = .PNG
|
|
|
+ (convert as! KMPDFConvertImage).imageDpi = dpi
|
|
|
+ } else {
|
|
|
+ (convert as! KMPDFConvertImage).imageDpi = 150
|
|
|
+ }
|
|
|
+ case .html:
|
|
|
+ convert = KMPDFConvertHTML()
|
|
|
+ case .rtf:
|
|
|
+ convert = KMPDFConvertRTF()
|
|
|
+ default:
|
|
|
+ KMPrint("不清楚")
|
|
|
}
|
|
|
+ return convert
|
|
|
}
|
|
|
|
|
|
//MARK: 压缩
|