Browse Source

Работа над конвертером pdf

Book Pauk 4 years ago
parent
commit
5d54b1b0f4

+ 7 - 2
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();
                     }
 

+ 12 - 1
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}`;
                 }
             }