import CoreText import UIKit extension NSAttributedString { func rd_paginatedFrames( size: CGSize, fragmentOffsets: [String: Int] = [:], config: RDEPUBTextLayoutConfig = .default ) -> [RDEPUBTextLayoutFrame] { let factory = RDEPUBCoreTextPageFrameFactory(attributedString: self, pageSize: size, config: config) let counter = RDEPUBChapterPageCounter(factory: factory) return counter.layoutFrames(fragmentOffsets: fragmentOffsets) } func ss_pageRanges(size: CGSize) -> [NSRange] { rd_paginatedFrames(size: size).map(\.contentRange) } }