Просмотр исходного кода

Merge branch 'develop_PDFReaderProNew' of git.kdan.cc:Mac_PDF/PDF_Office into develop_PDFReaderProNew

tangchao 1 год назад
Родитель
Сommit
53d30ab0b1

+ 2 - 3
PDF Office/PDF Master/Class/PDFTools/Print/Model/KMPrintPageModel.swift

@@ -120,7 +120,6 @@ struct KMPrintPageOperation {
                 for key in PageType.allCases {
                     array.append(key.rawValue)
                 }
-                array.removeObject("1")
                 return array
             }
             
@@ -180,8 +179,8 @@ struct KMPrintPageOperation {
     struct Multipage {
         var orderType: Order = .horizontal
         var isAutoRotate: Bool = false //自动旋转
-        var lineSpacing: CGFloat = 0
-        var columnsSpacing: CGFloat = 0
+        var lineSpacing: CGFloat = 30
+        var columnsSpacing: CGFloat = 30
         var isBorder: Bool = false
         
         //排序类型

+ 14 - 10
PDF Office/PDF Master/Class/PDFTools/Print/Presenter/KMPrintPresenter.swift

@@ -336,7 +336,7 @@ extension KMPrintPresenter: KMPrintPresenterDocument {
         let paperSize: CGSize = self.fetchPaperSize(data.paper)//纸张大小
         let paperItemSize: CGSize = self.fetchPaperItemSize(data.paper) //页面paper大小(去除边框)
         let paperInset: NSEdgeInsets = data.paper.info.inset //绘制paper大小
-        let border: Bool = true //是否存在边框
+        let border: Bool = data.page.operation.multipage.isBorder //是否存在边框
         
         /**
          page
@@ -349,7 +349,7 @@ extension KMPrintPresenter: KMPrintPresenterDocument {
         
         //行列
         let columnAndRow = self.fetchPageColumnAndRow(data.page) //行 列数量
-        let columnAndRowSpace = CGPoint(x: 2, y: 2) //行 列之间的空间
+        let columnAndRowSpace = CGPoint(x: data.page.operation.multipage.lineSpacing, y: data.page.operation.multipage.columnsSpacing) //行 列之间的空间
 
         for i in 0..<Int(columnAndRow.x) {
             for j in 0..<(Int(columnAndRow.y)) {
@@ -413,21 +413,18 @@ extension KMPrintPresenter: KMPrintPresenterDocument {
                     page.page.transform(context, for: PDFDisplayBox.cropBox)
                     if border {
                         var dirtyRect = rect
+                    //CGRectMake(origin.x, origin.y, 100, 100)
                         if rotate == 90 ||
                             rotate == 270 {
                             dirtyRect = NSMakeRect(dirtyRect.origin.x, dirtyRect.origin.y, dirtyRect.size.height, dirtyRect.size.width)
                         }
 
                         context.addRect(dirtyRect)
-                        context.setStrokeColor(red: 1.0, green: 1.0, blue: 1.0, alpha: 1.0)
+                    context.setStrokeColor(red: 0, green: 0, blue: 0, alpha: 1.0)
                         context.strokePath()
                     }
                     NSGraphicsContext.restoreGraphicsState()
 //                        page.setBounds(NSRect(x: 0, y: 0, width: pageRect.size.width, height: pageRect.size.height), for: .cropBox)
-                    print("--------------------------")
-                    print(page.page)
-                    print(origin)
-                    print(scale)
                 }
             }
         }
@@ -647,11 +644,18 @@ extension KMPrintPresenter: KMPrintPresenterPage {
     func fetchPageItemSize(_ pageModel: KMPrintPageModel, _ paperSize: CGSize) -> CGSize {
         var size = NSZeroSize
         let columnAndRow = self.fetchPageColumnAndRow(pageModel) //行 列数量
-        let columnAndRowSpace = CGPoint(x: 2, y: 2) //行 列之间的空间
+        let lineSpacing = pageModel.operation.multipage.lineSpacing
+        let columnsSpacing = pageModel.operation.multipage.columnsSpacing
+        let columnAndRowSpace = CGPoint(x: lineSpacing, y: columnsSpacing) //行 列之间的空间
         
         //page大小
-        size = CGSize(width: (paperSize.width - CGFloat((columnAndRow.x - 1)) * CGFloat(columnAndRowSpace.x)) / columnAndRow.x,
-                      height: (paperSize.height - CGFloat((columnAndRow.y - 1)) * CGFloat(columnAndRowSpace.y)) / columnAndRow.y)
+        if pageModel.operation.type == .multipage {
+            size = CGSize(width: (paperSize.width - CGFloat((columnAndRow.x - 1)) * CGFloat(columnAndRowSpace.x)) / columnAndRow.x,
+                          height: (paperSize.height - CGFloat((columnAndRow.y - 1)) * CGFloat(columnAndRowSpace.y)) / columnAndRow.y)
+        } else {
+            size = CGSize(width: (paperSize.width - CGFloat((columnAndRow.x - 1)) * CGFloat(columnAndRowSpace.x)) / columnAndRow.x,
+                          height: (paperSize.height - CGFloat((columnAndRow.y - 1)) * CGFloat(columnAndRowSpace.y)) / columnAndRow.y)
+        }
         return size
     }
     

+ 22 - 21
PDF Office/PDF Master/Class/PDFTools/Print/View/PrintSettingView/View/Multipage/KMPrintMultipageView.swift

@@ -201,6 +201,9 @@ class KMPrintMultipageView: KMBaseXibView, NSComboBoxDelegate {
             pageHeightTextField.isEnabled = false
         }
         
+        pageWidthTextField.stringValue = model.paper.info.size.width.description
+        pageHeightTextField.stringValue = model.paper.info.size.height.description
+        
         //
         switch model.page.range.type {
         case .allPage:
@@ -311,11 +314,11 @@ extension KMPrintMultipageView {
         
         topDistanceText.stringValue = String(format: "%.2f", inset.top)
         bottomDistanceText.stringValue = String(format: "%.2f", inset.bottom)
-        leftDistanceText.stringValue = inset.left.description
-        rightDistanceText.stringValue = inset.right.description
+        leftDistanceText.stringValue = String(format: "%.2f", inset.left)
+        rightDistanceText.stringValue = String(format: "%.2f", inset.right)
         
-        lineSpaceText.stringValue = lineSpacing.description
-        columnSpaceText.stringValue = columnsSpacing.description
+        lineSpaceText.stringValue = String(format: "%.2f", lineSpacing)
+        columnSpaceText.stringValue = String(format: "%.2f", columnsSpacing)
         
         self.viewModel.multipagelineSpacingChangeAction(value: lineSpacing, completion: { success, model in
                 
@@ -371,24 +374,22 @@ extension KMPrintMultipageView {
     @IBAction func comboBoxItemClickPagesPer(_ sender: NSComboBox) {
         var type: KMPrintPageOperation.PageOfPaper.PageType = .page
         
-        if sender.indexOfSelectedItem != 5 {
-            
-            switch sender.indexOfSelectedItem {
-            case 0:
-                type = .page2
-            case 1:
-                type = .page4
-            case 2:
-                type = .page6
-            case 3:
-                type = .page9
-            case 4:
-                type = .page16
-            default:
-                break
-            }
-        } else {
+        switch sender.indexOfSelectedItem {
+        case 0:
+            type = .page
+        case 1:
+            type = .page2
+        case 2:
+            type = .page4
+        case 3:
+            type = .page6
+        case 4:
+            type = .page9
+        case 5:
+            type = .page16
+        default:
             type = .custom
+            break
         }
         
         self.viewModel.printPagePerChangeAction(type: type) { success, model in

+ 0 - 3
PDF Office/PDF Master/Class/PDFTools/Print/View/PrintSettingView/View/Poster/KMPrintPosterView.swift

@@ -176,9 +176,6 @@ class KMPrintPosterView: KMBaseXibView {
     override func reloadData() {
         let model = viewModel.model
         
-        columnCountText.stringValue = "\(viewModel.model.page.operation.pageOfPaper.point.x)"
-        lineCountText.stringValue = "\(viewModel.model.page.operation.pageOfPaper.point.y)"
-        
         //pageRange
         var range: KMPrintPageRange = self.viewModel.model.page.range
         if range.type == .allPage {