diff --git a/server/core/BookConverter/ConvertHtml.js b/server/core/BookConverter/ConvertHtml.js index 4fc4f640..eb9f6e73 100644 --- a/server/core/BookConverter/ConvertHtml.js +++ b/server/core/BookConverter/ConvertHtml.js @@ -76,7 +76,7 @@ class ConvertHtml extends ConvertBase { } }; - const newPara = new Set(['tr', '/table', 'hr', 'br', 'br/', 'dd', 'p', 'title', '/title', 'h1', 'h2', 'h3', '/h1', '/h2', '/h3']); + const newPara = new Set(['tr', '/table', 'hr', 'br', 'br/', 'li', 'dt', 'dd', 'p', 'title', '/title', 'h1', 'h2', 'h3', '/h1', '/h2', '/h3']); const onTextNode = (text, cutCounter, cutTag) => {// eslint-disable-line no-unused-vars if (!cutCounter && !(cutTitle && inTitle)) { diff --git a/server/core/BookConverter/ConvertPdf.js b/server/core/BookConverter/ConvertPdf.js index afcf5c6f..967bcdaa 100644 --- a/server/core/BookConverter/ConvertPdf.js +++ b/server/core/BookConverter/ConvertPdf.js @@ -38,6 +38,8 @@ class ConvertPdf extends ConvertHtml { let images = []; let loading = []; let inText = false; + let bold = false; + let italic = false; let title = ''; let prevTop = 0; let i = -1; @@ -68,7 +70,12 @@ class ConvertPdf extends ConvertHtml { const onTextNode = (text, cutCounter, cutTag) => {// eslint-disable-line no-unused-vars if (!cutCounter && inText) { - lines[i].text += text + ' '; + let tOpen = (bold ? '' : ''); + tOpen += (italic ? '' : ''); + let tClose = (italic ? '' : ''); + tClose += (bold ? '' : ''); + + lines[i].text += `${tOpen}${text}${tClose} `; if (i < 2) title += text + ' '; } @@ -76,6 +83,17 @@ class ConvertPdf extends ConvertHtml { const onStartNode = (tag, tail, singleTag, cutCounter, cutTag) => {// eslint-disable-line no-unused-vars if (!cutCounter) { + if (inText) { + switch (tag) { + case 'i': + italic = true; + break; + case 'b': + bold = true; + break; + } + } + if (tag == 'text' && !inText) { let attrs = sax.getAttrsSync(tail); const line = { @@ -121,6 +139,17 @@ class ConvertPdf extends ConvertHtml { }; const onEndNode = (tag, tail, singleTag, cutCounter, cutTag) => {// eslint-disable-line no-unused-vars + if (inText) { + switch (tag) { + case 'i': + italic = false; + break; + case 'b': + bold = false; + break; + } + } + if (tag == 'text') inText = false; };