Browse Source

【2025】【批量】转档 word、Excel、图片、PPT接口调试

lizhe 2 months ago
parent
commit
1125aeb5cb
15 changed files with 187 additions and 159 deletions
  1. 3 0
      PDF Office/PDF Master/KMClass/Convert/View/KMConvertOCRSettingItemView.swift
  2. 12 0
      PDF Office/PDF Master/KMClass/Convert/View/KMConvertSettingView.swift
  3. 6 0
      PDF Office/PDF Master/KMClass/Convert/View/KMConvertWordSettingView.swift
  4. 2 2
      PDF Office/PDF Master/KMClass/NewBatch/View/Setting/BatchRemove/KMBatchRemoveView.swift
  5. 2 2
      PDF Office/PDF Master/KMClass/NewBatch/View/Setting/Compress/KMBatchCompressView.swift
  6. 16 5
      PDF Office/PDF Master/KMClass/NewBatch/View/Setting/ConvertPDF/KMBatchConvertPDFView.swift
  7. 7 6
      PDF Office/PDF Master/KMClass/NewBatch/View/Setting/ConvertPDF/KMBatchConvertPDFView.xib
  8. 2 31
      PDF Office/PDF Master/KMClass/NewBatch/View/Setting/ConvertPDF/Model/KMBatchConvertPDFViewModel.swift
  9. 1 1
      PDF Office/PDF Master/KMClass/NewBatch/View/Setting/ConvertPDF/Presenter/KMBatchConvertPDFViewPresenter.swift
  10. 1 1
      PDF Office/PDF Master/KMClass/NewBatch/View/Setting/ConvertPDF/Views/Html/KMBatchHtmlView.swift
  11. 0 9
      PDF Office/PDF Master/KMClass/NewBatch/View/Setting/ConvertPDF/Views/Image/KMBatchConverPDFImageView.swift
  12. 14 22
      PDF Office/PDF Master/KMClass/NewBatch/View/Setting/ConvertPDF/Views/Word/KMBatchConverPDFWordView.swift
  13. 6 2
      PDF Office/PDF Master/KMClass/NewBatch/View/Setting/KMBatchBatchSettingItemView/KMBatchSettingItemView.swift
  14. 113 76
      PDF Office/PDF Master/KMClass/NewBatch/View/Setting/KMBatchSettingView.swift
  15. 2 2
      PDF Office/PDF Master/KMClass/NewBatch/View/Setting/Security/KMBatchSecurityView.swift

+ 3 - 0
PDF Office/PDF Master/KMClass/Convert/View/KMConvertOCRSettingItemView.swift

@@ -111,6 +111,7 @@ class KMConvertOCRSettingItemView: KMConvertBaseView {
     }
     
     var lanugageDidSelected: KMValueDidChangeBlock?
+    var needOCRAction: ((_ needOCR: Bool) -> Void)?
     var reachabilityAlert: NSAlert?
     
     override func awakeFromNib() {
@@ -206,6 +207,8 @@ class KMConvertOCRSettingItemView: KMConvertBaseView {
         let state = self.checkView_.properties.checkboxType
         languageView_.properties.isDisabled = state != .selected
         languageView_.reloadData()
+        
+        needOCRAction?(!languageView_.properties.isDisabled)
     }
     
     func showProgressWindow() {

+ 12 - 0
PDF Office/PDF Master/KMClass/Convert/View/KMConvertSettingView.swift

@@ -11,6 +11,7 @@ let kKMConvertLanugageSelectedIndex: String = "KMConvertLanugageSelectedIndex"
 
 typealias KMConvertSettingViewPageRangeDidChangeCallback = (_ pageRange: KMPageRange) -> Void
 typealias KMConvertSettingViewPageRangeDidInputFinishCallback = (_ pageRangeString: String) -> ()
+typealias KMConvertWordSettingViewNeedOCRAction = (_ needOCR: Bool) -> Void
 
 // 转档 设置视图 基类
 class KMConvertSettingView: KMConvertBaseView {
@@ -18,6 +19,9 @@ class KMConvertSettingView: KMConvertBaseView {
     var type: KMBatchConvertPDFType = .word
     var isBatch = false
     
+    //OCR
+    var needOCRAction: KMConvertWordSettingViewNeedOCRAction?
+    
     var currentLanguage: String? {
         get {
             return self._currentLanguage
@@ -59,6 +63,14 @@ class KMConvertSettingView: KMConvertBaseView {
                     
                     callback(value, change)
                 }
+                
+                newValue?.needOCRAction = { [weak self] needOCR in
+                    guard let callback = self?.needOCRAction else {
+                        return
+                    }
+                    
+                    callback(needOCR)
+                }
             }
         }
     }

+ 6 - 0
PDF Office/PDF Master/KMClass/Convert/View/KMConvertWordSettingView.swift

@@ -7,6 +7,7 @@
 
 import KMComponentLibrary
 
+typealias KMConvertWordSettingViewLayoutSettingAction = (_ selectedIndex: Int) -> Void
 class KMConvertWordSettingView: KMConvertSettingView {
 
     @IBOutlet weak var pageSettingTitleLabel: NSTextField!
@@ -17,6 +18,7 @@ class KMConvertWordSettingView: KMConvertSettingView {
     @IBOutlet weak var textOCRBox: NSBox!
     @IBOutlet weak var pageRangeBox: NSBox!
     
+    var layoutSettingAction: KMConvertWordSettingViewLayoutSettingAction?
     // 流排 0 框排 1
     var pageSettingSelectedIndex: Int = 0
     
@@ -99,6 +101,8 @@ class KMConvertWordSettingView: KMConvertSettingView {
         self.savePageLayoutRadio.reloadData()
         
         self.pageSettingSelectedIndex = 0
+        
+        layoutSettingAction?(0)
     }
     
     private func _pageLayoutAction() {
@@ -109,5 +113,7 @@ class KMConvertWordSettingView: KMConvertSettingView {
         self.saveFlowTextRadio.reloadData()
         
         self.pageSettingSelectedIndex = 1
+        
+        layoutSettingAction?(1)
     }
 }

+ 2 - 2
PDF Office/PDF Master/KMClass/NewBatch/View/Setting/BatchRemove/KMBatchRemoveView.swift

@@ -70,8 +70,8 @@ extension KMBatchRemoveView: KMBatchRemoveViewAction {
             return
         }
         
-        if self.export != nil {
-            self.export!(self, self.data)
+        if self.batchExport != nil {
+            self.batchExport!(self, self.data)
         }
     }
 }

+ 2 - 2
PDF Office/PDF Master/KMClass/NewBatch/View/Setting/Compress/KMBatchCompressView.swift

@@ -33,8 +33,8 @@ protocol KMBatchCompressViewAction {}
 
 extension KMBatchCompressView: KMBatchCompressViewAction {
     @IBAction func compressButtonAction(_ sender: Any) {
-        if self.export != nil {
-            self.export!(self, self.data)
+        if self.batchExport != nil {
+            self.batchExport!(self, self.data)
         }
     }
 }

+ 16 - 5
PDF Office/PDF Master/KMClass/NewBatch/View/Setting/ConvertPDF/KMBatchConvertPDFView.swift

@@ -16,6 +16,7 @@ class KMBatchConvertPDFView: KMBatchSettingItemView {
     
     @IBOutlet weak var formatSelectButton: ComponentSelect!
     @IBOutlet weak var convertButton: ComponentButton!
+    @IBOutlet weak var convertBackgroundView: NSView!
     
     var itemViewArray: [KMBatchConvertPDFItemView] = []
     var currentView: KMBatchConvertPDFItemView = KMBatchConvertPDFItemView()
@@ -42,6 +43,8 @@ class KMBatchConvertPDFView: KMBatchSettingItemView {
         
         self.titleContentView.border(ComponentLibrary.shared.getComponentColorFromKey("colorBorder/divider"), 0.5, 0)
         
+        self.convertBackgroundView.border(ComponentLibrary.shared.getComponentColorFromKey("colorBorder/divider"), 0.5, 0)
+        
         self.titleLabel.textColor = ComponentLibrary.shared.getComponentColorFromKey("colorText/2")
         self.titleLabel.font = ComponentLibrary.shared.getFontFromKey("mac/body-m-bold")
         
@@ -75,6 +78,14 @@ class KMBatchConvertPDFView: KMBatchSettingItemView {
                                                               creatable: false,
                                                               text: NSLocalizedString("", comment: ""))
         formatSelectButton.selectItemAtIndex(0)
+        
+        self.convertButton.properties = ComponentButtonProperty(type: .primary,
+                                                                size: .m,
+                                                                state: .normal,
+                                                                buttonText: KMLocalizedString("Apply"),
+                                                                keepPressState: false)
+        self.convertButton.setTarget(self, action: #selector(convertAction(_:)))
+        self.convertButton.reloadData()
     }
     
     override func updateUILanguage() {
@@ -132,13 +143,13 @@ class KMBatchConvertPDFView: KMBatchSettingItemView {
                 view = KMBatchConverPDFCSVView.init(frame: self.itemContentView.bounds)
                 break
             case .html:
-                view = KMBatchConverPDFPPTView.init(frame: self.itemContentView.bounds)
+                view = KMBatchHtmlView.init(frame: self.itemContentView.bounds)
                 break
             case .rtf:
                 view = KMBatchConverPDFPPTView.init(frame: self.itemContentView.bounds)
                 break
             case .json:
-                view = KMBatchConverPDFPPTView.init(frame: self.itemContentView.bounds)
+                view = KMBatchJsonView.init(frame: self.itemContentView.bounds)
                 break
             case .text:
                 view = KMBatchConverPDFPPTView.init(frame: self.itemContentView.bounds)
@@ -159,9 +170,9 @@ class KMBatchConvertPDFView: KMBatchSettingItemView {
 
 protocol KMBatchConvertPDFViewAction {}
 extension KMBatchConvertPDFView: KMBatchConvertPDFViewAction {
-    @IBAction func convertAction(_ sender: Any) {
-        if (self.export != nil) {
-            self.export!(self, self.data)
+    @objc func convertAction(_ sender: Any) {
+        if (self.batchExport != nil) {
+            self.batchExport!(self, self.data)
         }
     }
 }

+ 7 - 6
PDF Office/PDF Master/KMClass/NewBatch/View/Setting/ConvertPDF/KMBatchConvertPDFView.xib

@@ -8,6 +8,7 @@
     <objects>
         <customObject id="-2" userLabel="File's Owner" customClass="KMBatchConvertPDFView" customModule="PDF_Reader_Pro" customModuleProvider="target">
             <connections>
+                <outlet property="convertBackgroundView" destination="lak-AJ-3PI" id="i3S-If-VUb"/>
                 <outlet property="convertButton" destination="Dtx-4S-4Ii" id="pKS-mQ-Wjw"/>
                 <outlet property="formatLabel" destination="Oku-fk-S4q" id="bZt-bD-gBk"/>
                 <outlet property="formatSelectButton" destination="hqn-Bq-M3b" id="qCn-5x-WOD"/>
@@ -19,14 +20,14 @@
         <customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
         <customObject id="-3" userLabel="Application" customClass="NSObject"/>
         <customView id="c22-O7-iKe">
-            <rect key="frame" x="0.0" y="0.0" width="264" height="694"/>
+            <rect key="frame" x="0.0" y="0.0" width="264" height="512"/>
             <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
             <subviews>
                 <customView translatesAutoresizingMaskIntoConstraints="NO" id="cxi-no-clx">
-                    <rect key="frame" x="0.0" y="0.0" width="264" height="694"/>
+                    <rect key="frame" x="0.0" y="0.0" width="264" height="512"/>
                     <subviews>
                         <customView translatesAutoresizingMaskIntoConstraints="NO" id="lDU-E0-snX">
-                            <rect key="frame" x="0.0" y="654" width="264" height="40"/>
+                            <rect key="frame" x="0.0" y="472" width="264" height="40"/>
                             <subviews>
                                 <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Xh0-v7-PP9">
                                     <rect key="frame" x="106" y="12" width="52" height="16"/>
@@ -44,7 +45,7 @@
                             </constraints>
                         </customView>
                         <customView translatesAutoresizingMaskIntoConstraints="NO" id="oqr-eC-d2R">
-                            <rect key="frame" x="0.0" y="582" width="264" height="72"/>
+                            <rect key="frame" x="0.0" y="400" width="264" height="72"/>
                             <subviews>
                                 <customView translatesAutoresizingMaskIntoConstraints="NO" id="Hxi-ye-1OW">
                                     <rect key="frame" x="0.0" y="32" width="264" height="40"/>
@@ -82,7 +83,7 @@
                             </constraints>
                         </customView>
                         <customView translatesAutoresizingMaskIntoConstraints="NO" id="8sw-k8-noK">
-                            <rect key="frame" x="0.0" y="72" width="264" height="494"/>
+                            <rect key="frame" x="0.0" y="72" width="264" height="312"/>
                         </customView>
                         <customView translatesAutoresizingMaskIntoConstraints="NO" id="lak-AJ-3PI">
                             <rect key="frame" x="0.0" y="0.0" width="264" height="72"/>
@@ -123,7 +124,7 @@
                 <constraint firstItem="cxi-no-clx" firstAttribute="leading" secondItem="c22-O7-iKe" secondAttribute="leading" id="mt8-MX-1lT"/>
                 <constraint firstAttribute="trailing" secondItem="cxi-no-clx" secondAttribute="trailing" id="sup-lz-Vgv"/>
             </constraints>
-            <point key="canvasLocation" x="-68" y="139"/>
+            <point key="canvasLocation" x="-68" y="48"/>
         </customView>
     </objects>
 </document>

+ 2 - 31
PDF Office/PDF Master/KMClass/NewBatch/View/Setting/ConvertPDF/Model/KMBatchConvertPDFViewModel.swift

@@ -106,36 +106,6 @@ enum KMBatchConvertPDFExcelSettingType: String, CaseIterable {
     }
 }
 
-//转换类型
-enum KMBatchConvertPDFImageType: String, CaseIterable {
-    case png = "PNG"
-    case jpg = "JPG"
-    case jpeg = "JPEG"
-    
-    static func allValues() -> [String] {
-        var array: [String] = []
-        for key in KMBatchConvertPDFImageType.allCases {
-            array.append(key.rawValue)
-        }
-        return array
-    }
-    
-    static func typeOfRawValue(_ rawValue: String) -> KMBatchConvertPDFImageType {
-        var type: KMBatchConvertPDFImageType = .jpeg
-        switch rawValue {
-        case KMBatchConvertPDFImageType.png.rawValue:
-            type = .png
-        case KMBatchConvertPDFImageType.jpg.rawValue:
-            type = .jpg
-        case KMBatchConvertPDFImageType.jpeg.rawValue:
-            type = .jpeg
-        default:
-            type = .png
-        }
-        return type
-    }
-}
-
 class KMBatchConvertPDFViewModel: KMBatchSettingItemViewModel {
     var languageType: COCRLanguage = .english
     var convertPDFType: KMBatchConvertPDFType = .word
@@ -148,5 +118,6 @@ class KMBatchConvertPDFViewModel: KMBatchSettingItemViewModel {
     //csv
     var csvOnlyTables: Bool = false
     //image
-    var imageType: KMBatchConvertPDFImageType = .jpeg
+    var imageType: KMPDFConvertType = .jpeg
+    var imageDpiIndex: Int = -1
 }

+ 1 - 1
PDF Office/PDF Master/KMClass/NewBatch/View/Setting/ConvertPDF/Presenter/KMBatchConvertPDFViewPresenter.swift

@@ -77,7 +77,7 @@ extension KMBatchConvertPDFViewPresenter: KMBatchConvertPDFViewPresenterProtocol
     }
     
     func imageTypeButtonAction(string: String) {
-        self.modelData.imageType = KMBatchConvertPDFImageType.typeOfRawValue(string)
+        self.modelData.imageType = KMPDFConvertType(rawValue: 0) ?? .jpeg
         
         self.delegate?.showData(presenter: self, data: self.modelData)
     }

+ 1 - 1
PDF Office/PDF Master/KMClass/NewBatch/View/Setting/ConvertPDF/Views/Html/KMBatchHtmlView.swift

@@ -11,7 +11,7 @@ class KMBatchHtmlView: KMBatchConvertPDFItemView {
     
     override func setup() {
         super.setup()
-        settingView = KMConvertPPTsSettingView.createFromNib()
+        settingView = KMConvertHtmlSettingView.createFromNib()
         settingView?.frame = self.bounds
         guard let settingView = settingView else { return }
         settingView.autoresizingMask = [.width, .height, .maxYMargin]

+ 0 - 9
PDF Office/PDF Master/KMClass/NewBatch/View/Setting/ConvertPDF/Views/Image/KMBatchConverPDFImageView.swift

@@ -56,15 +56,6 @@ class KMBatchConverPDFImageView: KMBatchConvertPDFItemView {
 
 protocol KMBatchConverPDFImageViewAction {}
 extension KMBatchConverPDFImageView: KMBatchConverPDFImageViewAction {
-    @IBAction func ImageTypeButtonAction(_ sender: NSButton) {
-        let menu = NSMenu()
-        menu.minimumWidth = sender.frame.size.width
-        for string in KMBatchConvertPDFImageType.allValues() {
-            menu.addItem(withTitle: NSLocalizedString(string, comment: ""), action: #selector(self.ImageTypeButtonClick), target: self)
-        }
-        menu.popUp(positioning: menu.item(at: 0), at: CGPoint(x: 0, y: (sender ).fittingSize.height), in: sender)
-    }
-
     @objc func ImageTypeButtonClick(item: NSMenuItem) {
         self.presenter.imageTypeButtonAction(string: item.title)
     }

+ 14 - 22
PDF Office/PDF Master/KMClass/NewBatch/View/Setting/ConvertPDF/Views/Word/KMBatchConverPDFWordView.swift

@@ -19,33 +19,25 @@ class KMBatchConverPDFWordView: KMBatchConvertPDFItemView {
         settingView.autoresizingMask = [.width, .height, .maxYMargin]
         addSubview(settingView)
 
+        (settingView as! KMConvertWordSettingView).layoutSettingAction = { [weak self] selectedIndex in
+            if selectedIndex == 0 {
+                self?.data.layoutSettingType = .flowingText
+            } else if (selectedIndex == 1){
+                self?.data.layoutSettingType = .pageLayout
+            }
+        }
+        
+        (settingView as! KMConvertWordSettingView).needOCRAction = { [weak self] needOCR in
+            self?.data.needRecognizeText = needOCR
+        }
+        
         settingView.lanugageDidSelected = { [weak self] value, _ in
             guard let index = value as? Int else {
                 return
             }
             
-//            self?.saveLanugageSelectedIndex(index: index)
-        }
-
-        settingView.pageRangeDidChange = { [weak self] pageRange in
-//            self?.pageRange = pageRange
-            if (pageRange != .custom) {
-//                self?._updatePreView(pageRange: pageRange)
-            }
-        }
-        settingView.pageRangeDidInputFinishCallback = { [unowned self] string in
-//            self.pageRangeString = string
-//            let array = self.findSelectPage(pageRangeString: string)
-//            if array.count == 0 {
-//                let alert = NSAlert()
-//                alert.alertStyle = .warning
-//                alert.messageText = KMLocalizedString("Invalid page range or the page number is out of range. Please try again.", comment: "")
-//                alert.runModal()
-//                
-//                self.settingView?.pageRangeItemView?.pageSizeVC?.stringValue = ""
-//            } else {
-//                self._updatePreView(pageRange: .custom, pageString: string)
-//            }
+            self?.data.needRecognizeText = true
+            self?.data.languageType = COCRLanguage(rawValue: index) ?? .english
         }
     }
     

+ 6 - 2
PDF Office/PDF Master/KMClass/NewBatch/View/Setting/KMBatchBatchSettingItemView/KMBatchSettingItemView.swift

@@ -13,9 +13,13 @@ class KMBatchSettingItemView: BaseXibView {
 
     var type: KMBatchCollectionViewType = .unknow
     var subType: Any?
-    var filesData: [KMBatchProcessingTableViewModel] = []
+    var filesData: [KMBatchProcessingTableViewModel] = [] {
+        didSet {
+            self.reloadData()
+        }
+    }
     
-    var export: KMBatchSettingItemViewExport?
+    var batchExport: KMBatchSettingItemViewExport?
     override func draw(_ dirtyRect: NSRect) {
         super.draw(dirtyRect)
 

+ 113 - 76
PDF Office/PDF Master/KMClass/NewBatch/View/Setting/KMBatchSettingView.swift

@@ -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: 压缩

+ 2 - 2
PDF Office/PDF Master/KMClass/NewBatch/View/Setting/Security/KMBatchSecurityView.swift

@@ -159,8 +159,8 @@ extension KMBatchSecurityView: KMBatchCompressViewAction {
 //            return
 //        }
         
-        if self.export != nil {
-            self.export!(self, self.data)
+        if self.batchExport != nil {
+            self.batchExport!(self, self.data)
         }
     }
 }