// // KMNPageEditViewController.swift // PDF Reader Pro // // Created by 丁林圭 on 2024/10/21. // import Cocoa import KMComponentLibrary @objc protocol KMNPageEditViewViewDelegate: AnyObject { @objc optional func changeBoundEditViewController(pageEditVC:KMNPageEditViewController) @objc optional func changeUndoManagerEditViewController(pageEditVC:KMNPageEditViewController) } class KMNPageEditViewController: KMNThumbnailBaseViewController { weak open var pageEditViewController: KMNPageEditViewViewDelegate? override func viewDidLoad() { super.viewDidLoad() backViewBox.fillColor = ComponentLibrary.shared.getComponentColorFromKey("colorBg/layout-pdfView") collectionView.menuClickedAction = { point in return self.clickMenu(point: point) } } private func insertFilePath(filePath:String,pdfPassword:String?) { let selectedIndexPaths = collectionView.selectionIndexPaths let insertPDF = KMNPDFInsertPDFWindowController(showDocument, filePath: filePath, password: pdfPassword, selectionIndexPaths: selectedIndexPaths) insertPDF.pdfCallback = { [weak self] fileAttribute, insertIdx in let doc = fileAttribute.pdfDocument var insertPages: [CPDFPage] = [] for number in fileAttribute.fetchSelectPages() { if let page = doc?.page(at: UInt(number-1)) { insertPages.append(page) } } self?.thumbnailBaseViewDelegate?.insertPDFThumbnailViewControlle?(pageEditVC: self, pdfDocment: doc) self?.insertFormPages(insertPages: insertPages, pageDex: insertIdx) } insertPDF.fileCallback = { [weak self] filePath, insertIdx in self?.insertFromFilePath(fileNames: [filePath], formDex: 0, indexDex: UInt(insertIdx), selectIndexs: [], completionBlock: { newSelectIndexs in }) } insertPDF.own_beginSheetModal(for: self.view.window, completionHandler: nil) } // MARK: - public public func canZoomInPageSize()->Bool { if pageThumbnailSize.width > defaultItemSize.width { return false } return true } public func canZoomOutPageSize()->Bool { if pageThumbnailSize.width < defaultItemSize.width { return false } return true } public func zoomInPageAction() { //放大 if (canZoomInPageSize() == false) { return } let indexpaths = collectionView.selectionIndexPaths if (pageThumbnailSize.width < defaultItemSize.width) { pageThumbnailSize = defaultItemSize } else if (pageThumbnailSize.width == defaultItemSize.width) { pageThumbnailSize = NSSize(width: defaultItemSize.width*1.5, height: defaultItemSize.height*1.5) } collectionView.reloadData() collectionView.selectionIndexPaths = indexpaths } public func zoomOutPageAction() { //缩小 if (canZoomOutPageSize() == false) { return } let indexpaths = collectionView.selectionIndexPaths if (pageThumbnailSize.width > defaultItemSize.width) { pageThumbnailSize = defaultItemSize } else if (pageThumbnailSize.width == defaultItemSize.width) { pageThumbnailSize = NSSize(width: defaultItemSize.width*0.5, height: defaultItemSize.height*0.5) } collectionView.reloadData() collectionView.selectionIndexPaths = indexpaths } }