diff --git a/client/components/Reader/TextPage/TextPage.vue b/client/components/Reader/TextPage/TextPage.vue index c066abde..d896d3eb 100644 --- a/client/components/Reader/TextPage/TextPage.vue +++ b/client/components/Reader/TextPage/TextPage.vue @@ -63,7 +63,8 @@ class TextPage extends Vue { this.parsed.font = this.font; this.parsed.wordWrap = this.wordWrap; this.measureText = (text, style) => {// eslint-disable-line no-unused-vars - this.context.font = this.fontByStyle(style); + if (style) + this.context.font = this.fontByStyle(style); return this.context.measureText(text).width; }; this.parsed.measureText = this.measureText; diff --git a/client/components/Reader/share/BookParser.js b/client/components/Reader/share/BookParser.js index 1d6f7149..eedb4b30 100644 --- a/client/components/Reader/share/BookParser.js +++ b/client/components/Reader/share/BookParser.js @@ -396,7 +396,16 @@ export default class BookParser { } } - line.parts.push({style, text: partText}); + if (partText != '') + line.parts.push({style, text: partText}); + + if (line.parts.length) {//корявенько, коррекция при переносе + let t = line.parts[line.parts.length - 1].text; + if (t.trimRight() != t) { + line.parts[line.parts.length - 1].text = t.trimRight(); + prevW -= this.measureText(' '); + } + } line.end = para.offset + ofs; line.width = prevW; line.first = (j == 0); @@ -417,10 +426,18 @@ export default class BookParser { prevW = w; } - line.parts.push({style, text: partText}); + if (partText != '') + line.parts.push({style, text: partText}); partText = ''; } + if (line.parts.length) {//корявенько, коррекция при переносе + let t = line.parts[line.parts.length - 1].text; + if (t.trimRight() != t) { + line.parts[line.parts.length - 1].text = t.trimRight(); + prevW -= this.measureText(' '); + } + } line.end = para.offset + para.length - 1; line.width = prevW; line.first = (j == 0);