123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170 |
- import Cocoa
- class KMBatchOperateImageToPDFViewController: KMBatchOperateBaseViewController, KMImageToPDFMethodDelegate{
-
-
- @IBOutlet var outputTypeLabel: NSTextField!
- @IBOutlet var createNewPDFBtn: NSButton!
- @IBOutlet var btnMerge: NSButton!
- @IBOutlet var appendPDFBtn: NSButton!
- @IBOutlet var appendTextField: NSTextField!
- @IBOutlet var appendOtherPDFBtn: NSButton!
- @IBOutlet var appendBackView: NSView!
- @IBOutlet var ocrLabel: NSTextField!
- @IBOutlet var ocrSelectBtn: NSButton!
- @IBOutlet var languaeBox: NSBox!
- @IBOutlet var languageButton: NSButton!
- @IBOutlet var saveAsButton: NSButton!
- @IBOutlet var planButton: NSButton!
- @IBOutlet var selectLanguageLabel: NSTextField!
- @IBOutlet var planBox: NSBox!
- @IBOutlet var actionButton: NSButton!
- var password: NSString = ""
- lazy var method: KMImageToPDFMethod = {
- let method = KMImageToPDFMethod()
- method.imageTopdfDelegate = self
- return method
- }()
-
- override var interfaceStatus: KMBatchOperateInterfaceStatus?{
- set{
- super.interfaceStatus = newValue
- if newValue == .PrepareProcess {
- DispatchQueue.main.asyncAfter(deadline: .now() + 0.4) {
- var files = NSMutableArray()
- for url in self.successFilePathURLArray! {
- if FileManager.default.fileExists(atPath: url.path) {
- files.add(url)
- }
- }
- if files.count > 0 {
- let workspace = NSWorkspace.shared
- workspace.activateFileViewerSelecting(files as! [URL])
- }
- }
- self.actionButton.tag = 1
- self.actionButton.title = NSLocalizedString("Save as PDF", comment: "")
- self.actionButton.setTitleColor(KMAppearance.Layout.w0Color())
- self.actionButton.isEnabled = true
- self.actionButton.layer?.backgroundColor = KMAppearance.Interactive.m0Color().cgColor
- } else {
- self.actionButton.tag = 0
- self.actionButton.layer?.backgroundColor = KMAppearance.Interactive.m0Color().cgColor
- self.actionButton.setTitleColor(KMAppearance.Layout.w0Color())
- self.actionButton.isEnabled = false
- }
- }
- get{
- return super.interfaceStatus
- }
- }
-
- deinit {
- NotificationCenter.default.removeObserver(self)
- }
-
- override func viewDidLoad() {
- super.viewDidLoad()
- self.localizedLanguage()
- self.configuUI()
-
- NotificationCenter.default.addObserver(self, selector: #selector(OCRSelectedLanguagesChangeNotification(notification:)), name: NSNotification.Name("KMOCRSelectedLanguagesChangeNotification"), object: nil)
- NotificationCenter.default.addObserver(self, selector: #selector(OCRSelectedPlanChangeNotification(notification:)), name: NSNotification.Name("KMOCRSelectedPlanChangeNotification"), object: nil)
-
- NotificationCenter.default.addObserver(self, selector: #selector(themeChanged(notification:)), name: NSNotification.Name("AppleInterfaceThemeChangedNotification"), object: nil)
- }
- func localizedLanguage() {
- self.outputTypeLabel.stringValue = KMLocalizedString("Output",nil)
- self.btnMerge.title = KMLocalizedString("Merge All", nil)
- self.createNewPDFBtn.title = KMLocalizedString("New PDF Document", nil)
- self.appendPDFBtn.title = KMLocalizedString("Append To Existing File", nil)
- self.appendTextField.placeholderString = KMLocalizedString("Select a File", nil)
- self.selectLanguageLabel.stringValue = KMLocalizedString("Select OCR Language:",nil)
- self.ocrSelectBtn.title = KMLocalizedString("OCR Plan",nil)
- let languages = KMGOCRManager.default().selectedLanguages.value(forKeyPath: KMGOCRLanguageStringKey) as! [Any]
- self.updateLanguageButton(languages)
- self.actionButton.title = KMLocalizedString("Save as PDF", nil)
- self.saveAsButton.title = KMLocalizedString("Save as TXT", nil)
- self.OCRSelectedPlanChangeAction()
- }
- func configuUI() {
-
- }
- func updateViewColor() {
- if KMAppearance.isDarkMode() {
- self.view.layer?.backgroundColor = NSColor(red: 0.055, green: 0.067, blue: 0.078, alpha: 1).cgColor
- appendBackView.layer?.borderColor = NSColor(red: 86/255.0, green: 88/255.0, blue: 90/255.0, alpha: 1).cgColor
- appendBackView.layer?.backgroundColor = NSColor(red: 57/255.0, green: 60/255.0, blue: 62/255.0, alpha: 1).cgColor
- } else {
- self.view.layer?.backgroundColor = NSColor(red: 0.922, green: 0.925, blue: 0.941, alpha: 1).cgColor
- appendBackView.layer?.borderColor = NSColor(red: 218/255.0, green: 219/255.0, blue: 222/255.0, alpha: 1).cgColor
- appendBackView.layer?.backgroundColor = NSColor.white.cgColor;
- }
- }
- func updateLanguageButton(_ languages: [Any]) {
- if languages.count < 1 {
- self.languageButton.title = KMLocalizedString("Auto Detection", nil)
- return
- }
- var languageName: String = ""
- if languages.count > 0 {
- for i in 0..<languages.count {
- let language = languages[i] as? String
- if i == 0 {
- languageName = language ?? ""
- } else {
- languageName = languageName.appendingFormat(",%@", language ?? "")
- }
- }
- } else {
- languageName = ""
- }
-
- self.languageButton.title = languageName
- }
-
-
-
-
-
-
- @objc func OCRSelectedLanguagesChangeNotification(notification: Notification) {
- let selectedLanguages = notification.object
-
- }
- @objc func OCRSelectedPlanChangeNotification(notification: Notification) {
- self.OCRSelectedPlanChangeAction()
- }
- @objc func themeChanged(notification: Notification) {
- DispatchQueue.main.asyncAfter(deadline: .now() + 0.3) {
- self.updateViewColor()
- }
- }
- func OCRSelectedPlanChangeAction() {
- let plan = UserDefaults.standard.integer(forKey: "KMOCRCurrentPlanKey")
- if plan == 0 {
- self.planButton.title = KMLocalizedString("Plan 1 (Online)", nil)
- } else {
- self.planButton.title = KMLocalizedString("Plan 2 (Offline)", nil)
- }
- KMGOCRManager.default().selectedLanguages = NSMutableArray()
- self.updateLanguageButton(KMGOCRManager.default().selectedLanguages.value(forKeyPath: KMGOCRLanguageStringKey) as! [Any])
- }
-
-
- func imageToPDFMethod(_ method: KMImageToPDFMethod, progress: Float) {
-
- }
- }
|