|
@@ -753,57 +753,7 @@ extension KMBatchManager {
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
|
- for i in 0..<filesData.count {
|
|
|
- let item = filesData[i]
|
|
|
- if data.isOCR {
|
|
|
- var fileName = item.filePath.deletingPathExtension.lastPathComponent
|
|
|
- let path = outputFolderPath + "/" + fileName + ".pdf"
|
|
|
-
|
|
|
-
|
|
|
- var pdfDocument = CPDFDocument()
|
|
|
- pdfDocument?.km_insert(image: item.image, at: pdfDocument?.pageCount ?? 0)
|
|
|
-
|
|
|
- let model = KMOCRModel()
|
|
|
- model.showType = .page
|
|
|
- model.saveAsPDF = true
|
|
|
- model.ocrType = data.ocrType
|
|
|
- model.languageType = data.languageType
|
|
|
- model.needTxT = data.isExtractText
|
|
|
- model.pageRangeType = .all
|
|
|
-
|
|
|
- //计算需要处理的页面
|
|
|
- let pages:[Int] = KMOCRManager.fetchPageIndex(document: pdfDocument!, model: model)
|
|
|
- model.pageRange = pages
|
|
|
-
|
|
|
- self.itemProgress(item: item, processValue: 0)
|
|
|
- self.convertOCR(outputFolderPath: outputFolderPath, document: pdfDocument!, fileName: fileName, data: model) { [unowned self] progress in
|
|
|
- self.itemProgress(item: item, processValue: progress)
|
|
|
- } complete: { [unowned self] document, text, error in
|
|
|
- self.itemSuccess(item: item)
|
|
|
-
|
|
|
- if i == filesData.count - 1 {
|
|
|
- for item in filesData {
|
|
|
- self.itemSuccess(item: item)
|
|
|
- }
|
|
|
- self.batchSuccess()
|
|
|
- }
|
|
|
- }
|
|
|
- } else {
|
|
|
- var fileName = item.filePath.deletingPathExtension.lastPathComponent
|
|
|
- let path = outputFolderPath + "/" + fileName + ".pdf"
|
|
|
- var pdfDocument = CPDFDocument()
|
|
|
- pdfDocument?.km_insert(image: item.image, at: pdfDocument?.pageCount ?? 0)
|
|
|
- let success = pdfDocument?.write(toFile: path)
|
|
|
- if success != nil {
|
|
|
- for item in filesData {
|
|
|
- self.itemSuccess(item: item)
|
|
|
- }
|
|
|
- self.batchSuccess()
|
|
|
- } else {
|
|
|
- self.batchFailure()
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+ processFile(at: 0, outputFolderPath: outputFolderPath, data: data)
|
|
|
}
|
|
|
} else {
|
|
|
var fileName = data.selectFilePath.deletingPathExtension.lastPathComponent
|
|
@@ -853,6 +803,57 @@ extension KMBatchManager {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ func processFile(at index: Int, outputFolderPath: String, data: KMBatchImageToPDFModel) {
|
|
|
+ guard index < filesData.count else {
|
|
|
+ self.batchSuccess()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ let item = filesData[index]
|
|
|
+
|
|
|
+ if data.isOCR {
|
|
|
+ let fileName = item.filePath.deletingPathExtension.lastPathComponent
|
|
|
+ let path = outputFolderPath + "/" + fileName + ".pdf"
|
|
|
+
|
|
|
+ let pdfDocument = CPDFDocument()
|
|
|
+ pdfDocument?.km_insert(image: item.image, at: pdfDocument?.pageCount ?? 0)
|
|
|
+
|
|
|
+ let model = KMOCRModel()
|
|
|
+ model.showType = .page
|
|
|
+ model.saveAsPDF = true
|
|
|
+ model.ocrType = data.ocrType
|
|
|
+ model.languageType = data.languageType
|
|
|
+ model.needTxT = data.isExtractText
|
|
|
+ model.pageRangeType = .all
|
|
|
+
|
|
|
+ let pages: [Int] = KMOCRManager.fetchPageIndex(document: pdfDocument!, model: model)
|
|
|
+ model.pageRange = pages
|
|
|
+
|
|
|
+ self.itemProgress(item: item, processValue: 0)
|
|
|
+ self.convertOCR(outputFolderPath: outputFolderPath, document: pdfDocument!, fileName: fileName, data: model) { [unowned self] progress in
|
|
|
+ self.itemProgress(item: item, processValue: progress)
|
|
|
+ } complete: { [unowned self] document, text, error in
|
|
|
+ self.itemSuccess(item: filesData[index])
|
|
|
+ processFile(at: index + 1, outputFolderPath: outputFolderPath, data: data)
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ let fileName = item.filePath.deletingPathExtension.lastPathComponent
|
|
|
+ let path = outputFolderPath + "/" + fileName + ".pdf"
|
|
|
+
|
|
|
+ let pdfDocument = CPDFDocument()
|
|
|
+ pdfDocument?.km_insert(image: item.image, at: pdfDocument?.pageCount ?? 0)
|
|
|
+
|
|
|
+ let success = pdfDocument?.write(toFile: path)
|
|
|
+ if success != nil {
|
|
|
+ self.itemSuccess(item: item)
|
|
|
+ processFile(at: index + 1, outputFolderPath: outputFolderPath, data: data)
|
|
|
+ } else {
|
|
|
+ self.itemFailure(item: item, error: nil)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
|
|
|
//MARK: private
|