|
@@ -140,26 +140,48 @@ extension KMPrintPresenter: KMPrintPresenterDocument {
|
|
|
}
|
|
|
|
|
|
var drawPages:[[KMPrintDrawPage]] = []
|
|
|
- for i in 0...(paperCount - 1) {
|
|
|
+ for i in 0..<paperCount {
|
|
|
//获取多页page
|
|
|
var tempPags: [KMPrintDrawPage] = []
|
|
|
- for j in 0...(pageOfPaperCount - 1) {
|
|
|
- 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 {
|
|
|
+ if pageModel.operation.type == .pamphlet {
|
|
|
+ let count = paperCount * pageOfPaperCount
|
|
|
+ let pagesCount = pages.count
|
|
|
+ var page = KMPrintDrawPage()
|
|
|
+ var page2 = KMPrintDrawPage()
|
|
|
+
|
|
|
+ //第一页
|
|
|
+ let index = count - (i + 1)
|
|
|
+ if index < pagesCount {
|
|
|
+ page = pages[index]
|
|
|
+ }
|
|
|
+
|
|
|
+ //第二页
|
|
|
+ let index2 = i
|
|
|
+ if index2 < pagesCount && index2 >= 0 {
|
|
|
+ page2 = pages[index2]
|
|
|
+ }
|
|
|
+
|
|
|
+ if i % 2 != 0 {
|
|
|
+ var temp = page2
|
|
|
+ page2 = page
|
|
|
+ page = temp
|
|
|
+ }
|
|
|
+
|
|
|
+ var pageCropRect = self.fetchPageCropRect(paperSize,i % pageRepetitionCount, pageModel, page)
|
|
|
+ var pageShowRect = pageCropRect
|
|
|
+ page.cropRect = pageCropRect
|
|
|
+ page.showRect = pageShowRect
|
|
|
+ tempPags.append(page)
|
|
|
+
|
|
|
+ var pageCropRect2 = self.fetchPageCropRect(paperSize,i % pageRepetitionCount, pageModel, page2)
|
|
|
+ var pageShowRect2 = pageCropRect
|
|
|
+ page2.cropRect = pageCropRect2
|
|
|
+ page2.showRect = pageShowRect2
|
|
|
+ tempPags.append(page2)
|
|
|
+
|
|
|
+ drawPages.append(tempPags)
|
|
|
+ } else {
|
|
|
+ for j in 0..<pageOfPaperCount {
|
|
|
let pageIndex = i / pageRepetitionCount
|
|
|
if (pageIndex * pageOfPaperCount + j < pages.count) {
|
|
|
let originDrawPage = (pages[pageIndex * pageOfPaperCount + j])
|
|
@@ -179,8 +201,8 @@ extension KMPrintPresenter: KMPrintPresenterDocument {
|
|
|
tempPags.append(drawPage)
|
|
|
}
|
|
|
}
|
|
|
+ drawPages.append(tempPags)
|
|
|
}
|
|
|
- drawPages.append(tempPags)
|
|
|
}
|
|
|
|
|
|
return drawPages
|
|
@@ -805,12 +827,13 @@ extension KMPrintPresenter: KMPrintPresenterPaper {
|
|
|
count = Int(ceilf(Float(pages.count / pageOfPaper)))
|
|
|
}
|
|
|
case .pamphlet: do {
|
|
|
- let temp = pages.count%2
|
|
|
+ let temp = pages.count%4
|
|
|
if temp == 0 {
|
|
|
- count = pages.count / 2
|
|
|
+ count = pages.count / 4
|
|
|
} else {
|
|
|
- count = pages.count / 2 + 1
|
|
|
+ count = pages.count / 4 + 1
|
|
|
}
|
|
|
+ count = count * 2
|
|
|
}
|
|
|
default:
|
|
|
count = Int(ceilf(Float(pages.count / pageOfPaper)))
|