feat(epub): align wxread css and overlay pagination behavior
This commit is contained in:
@@ -679,8 +679,9 @@ public final class RDEPUBReaderController: UIViewController {
|
||||
|
||||
if publication.readingProfile == .textReflowable {
|
||||
let renderer = resolvedTextRenderer()
|
||||
let builder = RDEPUBTextBookBuilder(renderer: renderer, cache: textBookCache)
|
||||
let pageSize = currentTextPageSize()
|
||||
let layoutConfig = currentTextLayoutConfig(pageSize: pageSize)
|
||||
let builder = RDEPUBTextBookBuilder(renderer: renderer, cache: textBookCache, layoutConfig: layoutConfig)
|
||||
let renderStyle = currentTextRenderStyle()
|
||||
|
||||
DispatchQueue.global(qos: .userInitiated).async { [weak self] in
|
||||
@@ -913,7 +914,7 @@ public final class RDEPUBReaderController: UIViewController {
|
||||
let restoreLocation = currentVisibleLocation() ?? persistenceLocation()
|
||||
let pageSize = currentTextPageSize()
|
||||
let style = currentTextRenderStyle()
|
||||
let builder = RDPlainTextBookBuilder()
|
||||
let builder = RDPlainTextBookBuilder(layoutConfig: currentTextLayoutConfig(pageSize: pageSize))
|
||||
if let newBook = try? builder.build(textFileURL: textFileURL, pageSize: pageSize, style: style) {
|
||||
applyTextBook(newBook, restoreLocation: restoreLocation)
|
||||
}
|
||||
@@ -1231,6 +1232,26 @@ public final class RDEPUBReaderController: UIViewController {
|
||||
)
|
||||
}
|
||||
|
||||
private func currentTextLayoutConfig(pageSize: CGSize) -> RDEPUBTextLayoutConfig {
|
||||
let viewportSize = currentLayoutContext().viewportSize
|
||||
let derivedFrameSize = CGSize(
|
||||
width: max(viewportSize.width, pageSize.width),
|
||||
height: max(viewportSize.height, pageSize.height)
|
||||
)
|
||||
return RDEPUBTextLayoutConfig(
|
||||
frameWidth: derivedFrameSize.width,
|
||||
frameHeight: derivedFrameSize.height,
|
||||
edgeInsets: .zero,
|
||||
numberOfColumns: 1,
|
||||
columnGap: 20,
|
||||
avoidOrphans: true,
|
||||
avoidWidows: true,
|
||||
avoidPageBreakInsideEnabled: true,
|
||||
hyphenation: true,
|
||||
imageMaxHeightRatio: 0.85
|
||||
)
|
||||
}
|
||||
|
||||
private func resolvedTextRenderer() -> RDEPUBTextRenderer {
|
||||
RDEPUBDTCoreTextRenderer()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user