diff --git a/server/core/Reader/BookConverter/ConvertHtml.js b/server/core/Reader/BookConverter/ConvertHtml.js index 1b148eac..cf7da080 100644 --- a/server/core/Reader/BookConverter/ConvertHtml.js +++ b/server/core/Reader/BookConverter/ConvertHtml.js @@ -214,6 +214,8 @@ class ConvertHtml extends ConvertBase { body.section._a[0] = pars; + //console.log(JSON.stringify(fb2, null, 2)); + //подозрение на чистый текст, надо разбить на параграфы if (isText || (buf.length > 30*1024 && pars.length < buf.length/2000)) { let total = 0; @@ -266,8 +268,11 @@ class ConvertHtml extends ConvertBase { l++; } - if ((j > 0 && l >= parIndent) || - (j < lines.length - 1 && line == '') ){ + if (j > 0 && + (l >= parIndent || + (j < lines.length - 1 && line == '') + ) + ) { newPar(); } diff --git a/server/core/Reader/BookConverter/ConvertPdf.js b/server/core/Reader/BookConverter/ConvertPdf.js index 5906f3d3..3ffebb9e 100644 --- a/server/core/Reader/BookConverter/ConvertPdf.js +++ b/server/core/Reader/BookConverter/ConvertPdf.js @@ -92,6 +92,9 @@ class ConvertPdf extends ConvertHtml { let pt = -100; let j = -1; pagelines.forEach(line => { + //добавим закрывающий тег стиля + line.text += line.tClose; + if (Math.abs(pt - line.top) > 3) { j++; pl[j] = line; @@ -144,6 +147,8 @@ class ConvertPdf extends ConvertHtml { left: parseInt((attrs.hpos && attrs.hpos.value ? attrs.hpos.value : null), 10), width: parseInt((attrs.width && attrs.width.value ? attrs.width.value : null), 10), height: parseInt((attrs.height && attrs.height.value ? attrs.height.value : null), 10), + tOpen: '', + tClose: '', }; if (line.width != 0 || line.height != 0) { @@ -167,7 +172,13 @@ class ConvertPdf extends ConvertHtml { tClose = fonts[fontId].tClose; } - line.text += `${tOpen}${attrs.content.value}${tClose} `; + if (line.tOpen != tOpen) { + line.text += line.tClose + tOpen; + line.tOpen = tOpen; + line.tClose = tClose; + } + + line.text += `${line.text.length ? ' ' : ''}${attrs.content.value}`; } }