Browse Source

【文字图片编辑】添加文字与图片流程完善

lizhe 1 year ago
parent
commit
e7b001445a

+ 2 - 2
PDF Office/PDF Master/Class/PDFWindowController/Side/RightSide/EditPDF/KMEditImagePropertyViewController.swift

@@ -513,7 +513,7 @@ extension KMEditImagePropertyViewController {
         }
         if imagesAreas.count == 1 {
             let panel = NSSavePanel()
-            panel.nameFieldStringValue = "\(NSLocalizedString("Untitled", comment: "")).png"
+            panel.nameFieldStringValue = "\(NSLocalizedString("Untitled", comment: "")).jpg"
 //            let button = NSButton.init(checkboxWithTitle: NSLocalizedString("Open the document after saving", comment: ""), target: nil, action: nil)
 //            button.state = .on
 //            panel.accessoryView = button
@@ -557,7 +557,7 @@ extension KMEditImagePropertyViewController {
                         var outPath = filePath!
                         outPath = outPath.stringByAppendingPathComponent(documentFileName)
                         outPath = outPath + "page \(j+1)"
-                        outPath = outPath.stringByAppendingPathExtension("png")
+                        outPath = outPath.stringByAppendingPathExtension("jpg")
                         let result = self.listView.extractImage(with: self.imagesAreas[j], toImagePath: outPath)
                         if result {
                             saveURLs.append(URL(fileURLWithPath: outPath))

+ 6 - 3
PDF Office/PDF Master/Class/PDFWindowController/Side/RightSide/EditPDF/KMEditPDFTextPropertyViewController.swift

@@ -111,6 +111,7 @@ class KMEditPDFTextPropertyViewController: NSViewController {
         self.initData()
         self.reloadData()
         self.updateLanguage()
+        self.listView.isEditImage = true
     }
     
     func setup() {
@@ -685,11 +686,13 @@ extension KMEditPDFTextPropertyViewController {
     //MARK: 刷新预览图片
     private func updatePreviewImage() {
         let alignment = self.alignment
-        let fontSize = Float((self.fontSizeVC?.stringValue.replacingOccurrences(of: "pt", with: ""))!)
+        var fontSize = Float((self.fontSizeVC?.stringValue.replacingOccurrences(of: "pt", with: ""))!) ?? 1.0
         let fontName = self.fontNameVC?.stringValue
         var fontStyle = self.checkFontStyle(style: self.fontStyleVC?.stringValue ?? "")
         let fontCurrentColor = self.currentColor
         
+        fontSize = max(fontSize, 8)
+        
         let editringareas = self.listView.editingAreas()
         let count = self.listView.editingAreas()?.count
         let editingSelectionString = self.listView.editingSelectionString()
@@ -707,7 +710,7 @@ extension KMEditPDFTextPropertyViewController {
             }
         }
         var attributeFontDescriptor = NSFontDescriptor.init(fontAttributes: [NSFontDescriptor.AttributeName.family : fontName,NSFontDescriptor.AttributeName.face: fontStyle])
-        var font = NSFont.init(descriptor: attributeFontDescriptor, size: CGFloat(fontSize!))
+        var font = NSFont.init(descriptor: attributeFontDescriptor, size: CGFloat(fontSize))
         var red : CGFloat = 0.0
         var green : CGFloat = 0.0
         var blue : CGFloat = 0.0
@@ -721,7 +724,7 @@ extension KMEditPDFTextPropertyViewController {
             self.fontName = ""
             self.fontStyle = ""
             attributeFontDescriptor = NSFontDescriptor.init(fontAttributes: [NSFontDescriptor.AttributeName.family : fontName ?? "Helvetica",NSFontDescriptor.AttributeName.face : fontStyle ?? "Bold"])
-            font = NSFont.init(descriptor: attributeFontDescriptor, size: CGFloat(fontSize!))
+            font = NSFont.init(descriptor: attributeFontDescriptor, size: CGFloat(fontSize))
         }
         
         let attributes = [NSAttributedString.Key.font:font,NSAttributedString.Key.foregroundColor:color,NSAttributedString.Key.paragraphStyle:style]

+ 5 - 1
PDF Office/PDF Master/Class/PDFWindowController/ViewController/KMMainViewController+UI.swift

@@ -169,6 +169,7 @@ extension KMMainViewController: KMToolbarControllerDelegate {
 //                self.rightSideViewController.view.isHidden = true
                 self.rightSideViewController.isHidden = true
                 self.listView.setShouAddEdit([])
+                self.listView.change([.text, .image])
                 self.listView.annotationType = .unkown
                 self.closeRightPane()
             } else if self.listView.annotationType == .addText {
@@ -176,13 +177,16 @@ extension KMMainViewController: KMToolbarControllerDelegate {
                 self.rightSideViewController.isHidden = false
                 self.openRightPane()
                 self.rightSideViewController.subViewType = .EditPDFAddText
+                
                 self.listView.setShouAddEdit(.text)
+                self.listView.change(.text)
             } else if self.listView.annotationType == .addImage {
                 self.rightSideViewController.isHidden = false
                 self.openRightPane()
                 
                 self.rightSideViewController.subViewType = .EditPDFAddImage
                 self.listView.setShouAddEdit(.image)
+                self.listView.change(.image)
             }
         } else {
 //            self.rightSideViewController.view.isHidden = true
@@ -221,7 +225,7 @@ extension KMMainViewController: KMToolbarControllerDelegate {
             self.listView.editingConfig().editingBorderColor = NSColor.init(red: 0, green: 0, blue: 0, alpha: 0.4)
             self.listView.editingConfig().addEditAreaColor = NSColor.init(red: 23.0/255.0, green: 112.0/255.0, blue: 244.0/255.0, alpha: 0.5)
             self.listView.editingConfig().editAreaMoveFillColor = NSColor.init(red: 23.0/255.0, green: 112.0/255.0, blue: 244.0/255.0, alpha: 0.1)
-
+            self.listView.setShouAddEdit([])
         }else if self.toolbarController.toolbarType == .LeftPanel {
             self.toggleLeftPane()
             self.leftSideViewController.showPanelView(show: true)

+ 14 - 7
PDF Office/PDF Master/Class/PDFWindowController/ViewController/KMMainViewController.swift

@@ -1221,12 +1221,19 @@ import Cocoa
     func pdfViewEditingAreaDidChanged(_ pdfView: CPDFView!) {
         print("pdfViewEditingAreaDidChanged")
         let areas = self.listView.editingAreas()
-        if areas == nil || areas?.count ?? 0 == 0{
-//            self.rightSideViewController.view.isHidden = true
-            self.rightSideViewController.isHidden = true
-            self.closeRightPane()
-            if self.rightSideViewController != nil && self.rightSideViewController.subViewType == .EditPDFAddText && self.listView.annotationType == .addText {
-                self.rightSideViewController.eidtPDFTextProperty.initData()
+        if areas == nil || areas?.count ?? 0 == 0 {
+            if self.listView.toolMode == .editPDFToolMode {
+                if self.listView.annotationType == .addImage || self.listView.annotationType == .addText {
+                    self.openRightPane()
+                } else {
+                    self.closeRightPane()
+                }
+            } else {
+                self.rightSideViewController.isHidden = true
+                self.closeRightPane()
+                if self.rightSideViewController != nil && self.rightSideViewController.subViewType == .EditPDFAddText && self.listView.annotationType == .addText {
+                    self.rightSideViewController.eidtPDFTextProperty.initData()
+                }
             }
             return
         }
@@ -1249,7 +1256,7 @@ import Cocoa
                 self.rightSideViewController.isHidden = true
                 self.closeRightPane()
             }
-        } else if self.rightSideViewController != nil && self.rightSideViewController.subViewType == .EditPDFAddText && self.listView.annotationType == .addText{
+        } else if self.rightSideViewController != nil && self.rightSideViewController.subViewType == .EditPDFAddText && self.listView.annotationType == .addText {
 //            self.rightSideViewController.view.isHidden = false
             self.rightSideViewController.isHidden = false
             self.rightSideViewController.eidtPDFTextProperty.reloadData()