Работа над конвертером pdf
This commit is contained in:
@@ -214,6 +214,8 @@ class ConvertHtml extends ConvertBase {
|
|||||||
|
|
||||||
body.section._a[0] = pars;
|
body.section._a[0] = pars;
|
||||||
|
|
||||||
|
//console.log(JSON.stringify(fb2, null, 2));
|
||||||
|
|
||||||
//подозрение на чистый текст, надо разбить на параграфы
|
//подозрение на чистый текст, надо разбить на параграфы
|
||||||
if (isText || (buf.length > 30*1024 && pars.length < buf.length/2000)) {
|
if (isText || (buf.length > 30*1024 && pars.length < buf.length/2000)) {
|
||||||
let total = 0;
|
let total = 0;
|
||||||
@@ -266,8 +268,11 @@ class ConvertHtml extends ConvertBase {
|
|||||||
l++;
|
l++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((j > 0 && l >= parIndent) ||
|
if (j > 0 &&
|
||||||
(j < lines.length - 1 && line == '') ){
|
(l >= parIndent ||
|
||||||
|
(j < lines.length - 1 && line == '')
|
||||||
|
)
|
||||||
|
) {
|
||||||
newPar();
|
newPar();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -92,6 +92,9 @@ class ConvertPdf extends ConvertHtml {
|
|||||||
let pt = -100;
|
let pt = -100;
|
||||||
let j = -1;
|
let j = -1;
|
||||||
pagelines.forEach(line => {
|
pagelines.forEach(line => {
|
||||||
|
//добавим закрывающий тег стиля
|
||||||
|
line.text += line.tClose;
|
||||||
|
|
||||||
if (Math.abs(pt - line.top) > 3) {
|
if (Math.abs(pt - line.top) > 3) {
|
||||||
j++;
|
j++;
|
||||||
pl[j] = line;
|
pl[j] = line;
|
||||||
@@ -144,6 +147,8 @@ class ConvertPdf extends ConvertHtml {
|
|||||||
left: parseInt((attrs.hpos && attrs.hpos.value ? attrs.hpos.value : null), 10),
|
left: parseInt((attrs.hpos && attrs.hpos.value ? attrs.hpos.value : null), 10),
|
||||||
width: parseInt((attrs.width && attrs.width.value ? attrs.width.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),
|
height: parseInt((attrs.height && attrs.height.value ? attrs.height.value : null), 10),
|
||||||
|
tOpen: '',
|
||||||
|
tClose: '',
|
||||||
};
|
};
|
||||||
|
|
||||||
if (line.width != 0 || line.height != 0) {
|
if (line.width != 0 || line.height != 0) {
|
||||||
@@ -167,7 +172,13 @@ class ConvertPdf extends ConvertHtml {
|
|||||||
tClose = fonts[fontId].tClose;
|
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}`;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user