Browse Source

【打印】小册子 - page获取

lizhe 1 year ago
parent
commit
3d8ff259a2

+ 32 - 17
PDF Office/PDF Master/Class/PDFTools/Print/Presenter/KMPrintPresenter.swift

@@ -144,25 +144,40 @@ extension KMPrintPresenter: KMPrintPresenterDocument {
             //获取多页page
             var tempPags: [KMPrintDrawPage] = []
             for j in 0...(pageOfPaperCount - 1) {
-                let pageIndex = i / pageRepetitionCount
-                if (pageIndex * pageOfPaperCount + j < pages.count) {
-                    let originDrawPage = (pages[pageIndex * pageOfPaperCount + j])
-                    let drawPage = KMPrintDrawPage()
-                    drawPage.page = originDrawPage.page
-                    var pageCropRect = self.fetchPageCropRect(paperSize,i % pageRepetitionCount, pageModel, drawPage)
-                    var pageShowRect = pageCropRect
-                    if (pageModel.operation.type == .poster) {
-                        if (pageModel.operation.poster.type == .tile) {
-                            pageShowRect = self.fetchPageShowRect(paperSize, i % pageRepetitionCount, pageModel, drawPage)
-                        } else if (pageModel.operation.poster.type == .breakUp) {
-                            pageShowRect = pageCropRect
+                if pageModel.operation.type == .pamphlet {
+                    let pageIndex = i / pageRepetitionCount
+                    if (pageIndex * pageOfPaperCount + j < pages.count) {
+                        let pageIndex = i / pageRepetitionCount
+                        let originDrawPage = (pages[pageIndex * pageOfPaperCount + j])
+                        let drawPage = KMPrintDrawPage()
+                        drawPage.page = originDrawPage.page
+                        var pageCropRect = self.fetchPageCropRect(paperSize,i % pageRepetitionCount, pageModel, drawPage)
+                        var pageShowRect = pageCropRect
+                        drawPage.cropRect = pageCropRect
+                        drawPage.showRect = pageShowRect
+                        tempPags.append(drawPage)
+                    } else {
+                        tempPags.append(KMPrintDrawPage())
+                    }
+                } else {
+                    let pageIndex = i / pageRepetitionCount
+                    if (pageIndex * pageOfPaperCount + j < pages.count) {
+                        let originDrawPage = (pages[pageIndex * pageOfPaperCount + j])
+                        let drawPage = KMPrintDrawPage()
+                        drawPage.page = originDrawPage.page
+                        var pageCropRect = self.fetchPageCropRect(paperSize,i % pageRepetitionCount, pageModel, drawPage)
+                        var pageShowRect = pageCropRect
+                        if (pageModel.operation.type == .poster) {
+                            if (pageModel.operation.poster.type == .tile) {
+                                pageShowRect = self.fetchPageShowRect(paperSize, i % pageRepetitionCount, pageModel, drawPage)
+                            } else if (pageModel.operation.poster.type == .breakUp) {
+                                pageShowRect = pageCropRect
+                            }
                         }
-                    } else if pageModel.operation.type == .pamphlet {
-                        
+                        drawPage.cropRect = pageCropRect
+                        drawPage.showRect = pageShowRect
+                        tempPags.append(drawPage)
                     }
-                    drawPage.cropRect = pageCropRect
-                    drawPage.showRect = pageShowRect
-                    tempPags.append(drawPage)
                 }
             }
             drawPages.append(tempPags)

+ 8 - 1
PDF Office/PDF Master/Class/PDFTools/Print/View/PrintSettingView/ViewModel/KMPrintViewModel.swift

@@ -265,7 +265,14 @@ extension KMPrintViewModel {
 extension KMPrintViewModel {
     
     func pamphletPagesGapChangeAction(value: CGFloat, completion: KMPrintViewModelCompletion) {
-        
+            if value == self.model.page.operation.pamphlet.margin  {
+                completion(false, nil)
+                return
+            }
+            
+            self.model.page.operation.pamphlet.margin = value
+            
+            completion(true, model)
     }
     
     func pamphletBindingChangeAction(type: KMPrintPageOperation.Pamphlet.BookbindingType , completion: KMPrintViewModelCompletion) {