kordoc 4.24.19 → 4.24.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -5
- package/dist/{-IFNBZFGR.js → -IS4RXPEZ.js} +11 -11
- package/dist/{chunk-2IFSM7ZE.js → chunk-3RVASM4C.js} +4 -4
- package/dist/{chunk-MHBJAY2T.js → chunk-4OF7DHIT.js} +4 -4
- package/dist/{chunk-IXCXFGYB.js → chunk-B3POEH7X.js} +2 -2
- package/dist/{chunk-XQJNL7TD.cjs → chunk-B5M676H3.cjs} +6 -6
- package/dist/{chunk-XQJNL7TD.cjs.map → chunk-B5M676H3.cjs.map} +1 -1
- package/dist/{chunk-XGUX3JDV.js → chunk-BMXWY36E.js} +4 -4
- package/dist/{chunk-DIDPIFGO.js → chunk-BNEKESI4.js} +2 -2
- package/dist/{chunk-UTDQAY35.js → chunk-BTBFKDPH.js} +2 -2
- package/dist/{chunk-OJL4V7WL.cjs → chunk-BUFGW3UJ.cjs} +25 -25
- package/dist/{chunk-OJL4V7WL.cjs.map → chunk-BUFGW3UJ.cjs.map} +1 -1
- package/dist/{chunk-Q6XWPGGB.js → chunk-BV2YG7M6.js} +2 -2
- package/dist/{chunk-MRFBERH2.js → chunk-CPVXUEKF.js} +2 -2
- package/dist/{chunk-UNTBPUY5.js → chunk-E6G4B457.js} +2 -2
- package/dist/{chunk-EEJKU5SD.js → chunk-F4GZFIUJ.js} +2 -2
- package/dist/{chunk-752MQ7LI.js → chunk-F6OHQLN7.js} +3 -3
- package/dist/{chunk-QQAANXHZ.js → chunk-IZN5BTCW.js} +2 -2
- package/dist/{chunk-RPHURU2B.cjs → chunk-L556KKBU.cjs} +79 -79
- package/dist/{chunk-RPHURU2B.cjs.map → chunk-L556KKBU.cjs.map} +1 -1
- package/dist/{chunk-TATLMLLJ.js → chunk-MGCIQ43Y.js} +3 -3
- package/dist/{chunk-MP6CLG5T.js → chunk-MMZUWRH6.js} +11 -11
- package/dist/{chunk-DCEXKPBH.js → chunk-MYDHNNPA.js} +92 -27
- package/dist/chunk-MYDHNNPA.js.map +1 -0
- package/dist/{chunk-WUU63RFU.js → chunk-N45RCYBL.js} +3 -3
- package/dist/{chunk-DTNNWOBN.js → chunk-NE75RO62.js} +2 -2
- package/dist/{chunk-OI4LVKFX.js → chunk-NRCG3ASU.js} +2 -2
- package/dist/{chunk-B4X2Q5MK.js → chunk-O5ZCJEZ4.js} +2 -2
- package/dist/{chunk-U4QSRBEV.cjs → chunk-OMGCVZ4W.cjs} +2 -2
- package/dist/{chunk-U4QSRBEV.cjs.map → chunk-OMGCVZ4W.cjs.map} +1 -1
- package/dist/{chunk-JQJYIYMJ.js → chunk-PDOWSDNM.js} +2 -2
- package/dist/{chunk-RQCGVE3R.js → chunk-UNYH6MTO.js} +2 -2
- package/dist/{chunk-4OWHKA6D.cjs → chunk-V7S36XCU.cjs} +3 -3
- package/dist/{chunk-4OWHKA6D.cjs.map → chunk-V7S36XCU.cjs.map} +1 -1
- package/dist/{chunk-X6GHZRPS.js → chunk-WQC4XWVT.js} +2 -2
- package/dist/{chunk-7RVG2IVX.cjs → chunk-WVZSTMCZ.cjs} +3 -3
- package/dist/{chunk-7RVG2IVX.cjs.map → chunk-WVZSTMCZ.cjs.map} +1 -1
- package/dist/{chunk-S4EPR2Q4.js → chunk-Z6ONQ63K.js} +2 -2
- package/dist/chunks-FYCQOIWO.js +10 -0
- package/dist/cli.js +30 -30
- package/dist/{formula-IYTV7SBF.js → formula-DHBBWQLC.js} +3 -3
- package/dist/{formula-WSK7DHQS.cjs → formula-G3FQTUOY.cjs} +9 -9
- package/dist/{formula-WSK7DHQS.cjs.map → formula-G3FQTUOY.cjs.map} +1 -1
- package/dist/{formula-WSFS7D7Z.js → formula-I4EA7ULD.js} +4 -4
- package/dist/{image-ocr-Y75JNXPZ.js → image-ocr-5YWVBRY6.js} +6 -6
- package/dist/{image-ocr-AVMUMNAV.js → image-ocr-QUVBGNWD.js} +9 -9
- package/dist/{image-ocr-LWWF4HEE.cjs → image-ocr-THUO6YRG.cjs} +17 -17
- package/dist/{image-ocr-LWWF4HEE.cjs.map → image-ocr-THUO6YRG.cjs.map} +1 -1
- package/dist/index.cjs +510 -445
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +92 -27
- package/dist/index.js.map +1 -1
- package/dist/mcp.js +23 -23
- package/dist/{model-bundle-JOACGE6A.js → model-bundle-6RG5PO3R.js} +5 -5
- package/dist/{models-RTSOF7XB.js → models-CGYIGN6D.js} +5 -5
- package/dist/{parse-worker-v2-GHCIS7RI.js → parse-worker-v2-F5NXYBU6.js} +12 -12
- package/dist/{parser-4NF5BGSC.js → parser-G5QTRKII.js} +9 -9
- package/dist/{parser-GJWAT5YG.cjs → parser-GJ4PKW7I.cjs} +159 -159
- package/dist/{parser-GJWAT5YG.cjs.map → parser-GJ4PKW7I.cjs.map} +1 -1
- package/dist/{parser-E7VENFW7.js → parser-I2C5DUXC.js} +12 -12
- package/dist/pdf-ocr-LJKCUXTE.cjs +35 -0
- package/dist/{pdf-ocr-J74A2ZQW.cjs.map → pdf-ocr-LJKCUXTE.cjs.map} +1 -1
- package/dist/{pdf-ocr-CJSC4DLZ.js → pdf-ocr-TNW6YOPX.js} +6 -6
- package/dist/{pdf-ocr-K4MHY4KP.js → pdf-ocr-U3I74Q4O.js} +9 -9
- package/dist/{profile-io-LA4LFEFV.js → profile-io-5YZCFK7B.js} +3 -3
- package/dist/{rasterize-PZ6VCPOZ.js → rasterize-7VRHPOQX.js} +3 -3
- package/dist/{redact-doc-HHDDIIV7.js → redact-doc-VK6VGBK3.js} +11 -11
- package/dist/{render-QIWXWLYC.js → render-Y7J6DPRL.js} +7 -7
- package/dist/seal-4QIZ3ZNI.js +10 -0
- package/dist/{setup-Y6EZH34Z.js → setup-4XTUDU4X.js} +3 -3
- package/dist/visual-VEMQJ52W.js +21 -0
- package/dist/{watch-LBRW6NAG.js → watch-SPZRLTKG.js} +12 -12
- package/package.json +1 -1
- package/dist/chunk-DCEXKPBH.js.map +0 -1
- package/dist/chunks-7ACTVPJJ.js +0 -10
- package/dist/pdf-ocr-J74A2ZQW.cjs +0 -35
- package/dist/seal-SBA3CFCC.js +0 -10
- package/dist/visual-PN3PUVDG.js +0 -21
- /package/dist/{-IFNBZFGR.js.map → -IS4RXPEZ.js.map} +0 -0
- /package/dist/{chunk-2IFSM7ZE.js.map → chunk-3RVASM4C.js.map} +0 -0
- /package/dist/{chunk-MHBJAY2T.js.map → chunk-4OF7DHIT.js.map} +0 -0
- /package/dist/{chunk-IXCXFGYB.js.map → chunk-B3POEH7X.js.map} +0 -0
- /package/dist/{chunk-XGUX3JDV.js.map → chunk-BMXWY36E.js.map} +0 -0
- /package/dist/{chunk-DIDPIFGO.js.map → chunk-BNEKESI4.js.map} +0 -0
- /package/dist/{chunk-UTDQAY35.js.map → chunk-BTBFKDPH.js.map} +0 -0
- /package/dist/{chunk-Q6XWPGGB.js.map → chunk-BV2YG7M6.js.map} +0 -0
- /package/dist/{chunk-MRFBERH2.js.map → chunk-CPVXUEKF.js.map} +0 -0
- /package/dist/{chunk-UNTBPUY5.js.map → chunk-E6G4B457.js.map} +0 -0
- /package/dist/{chunk-EEJKU5SD.js.map → chunk-F4GZFIUJ.js.map} +0 -0
- /package/dist/{chunk-752MQ7LI.js.map → chunk-F6OHQLN7.js.map} +0 -0
- /package/dist/{chunk-QQAANXHZ.js.map → chunk-IZN5BTCW.js.map} +0 -0
- /package/dist/{chunk-TATLMLLJ.js.map → chunk-MGCIQ43Y.js.map} +0 -0
- /package/dist/{chunk-MP6CLG5T.js.map → chunk-MMZUWRH6.js.map} +0 -0
- /package/dist/{chunk-WUU63RFU.js.map → chunk-N45RCYBL.js.map} +0 -0
- /package/dist/{chunk-DTNNWOBN.js.map → chunk-NE75RO62.js.map} +0 -0
- /package/dist/{chunk-OI4LVKFX.js.map → chunk-NRCG3ASU.js.map} +0 -0
- /package/dist/{chunk-B4X2Q5MK.js.map → chunk-O5ZCJEZ4.js.map} +0 -0
- /package/dist/{chunk-JQJYIYMJ.js.map → chunk-PDOWSDNM.js.map} +0 -0
- /package/dist/{chunk-RQCGVE3R.js.map → chunk-UNYH6MTO.js.map} +0 -0
- /package/dist/{chunk-X6GHZRPS.js.map → chunk-WQC4XWVT.js.map} +0 -0
- /package/dist/{chunk-S4EPR2Q4.js.map → chunk-Z6ONQ63K.js.map} +0 -0
- /package/dist/{chunks-7ACTVPJJ.js.map → chunks-FYCQOIWO.js.map} +0 -0
- /package/dist/{formula-IYTV7SBF.js.map → formula-DHBBWQLC.js.map} +0 -0
- /package/dist/{formula-WSFS7D7Z.js.map → formula-I4EA7ULD.js.map} +0 -0
- /package/dist/{image-ocr-Y75JNXPZ.js.map → image-ocr-5YWVBRY6.js.map} +0 -0
- /package/dist/{image-ocr-AVMUMNAV.js.map → image-ocr-QUVBGNWD.js.map} +0 -0
- /package/dist/{model-bundle-JOACGE6A.js.map → model-bundle-6RG5PO3R.js.map} +0 -0
- /package/dist/{models-RTSOF7XB.js.map → models-CGYIGN6D.js.map} +0 -0
- /package/dist/{parse-worker-v2-GHCIS7RI.js.map → parse-worker-v2-F5NXYBU6.js.map} +0 -0
- /package/dist/{parser-4NF5BGSC.js.map → parser-G5QTRKII.js.map} +0 -0
- /package/dist/{parser-E7VENFW7.js.map → parser-I2C5DUXC.js.map} +0 -0
- /package/dist/{pdf-ocr-CJSC4DLZ.js.map → pdf-ocr-TNW6YOPX.js.map} +0 -0
- /package/dist/{pdf-ocr-K4MHY4KP.js.map → pdf-ocr-U3I74Q4O.js.map} +0 -0
- /package/dist/{profile-io-LA4LFEFV.js.map → profile-io-5YZCFK7B.js.map} +0 -0
- /package/dist/{rasterize-PZ6VCPOZ.js.map → rasterize-7VRHPOQX.js.map} +0 -0
- /package/dist/{redact-doc-HHDDIIV7.js.map → redact-doc-VK6VGBK3.js.map} +0 -0
- /package/dist/{render-QIWXWLYC.js.map → render-Y7J6DPRL.js.map} +0 -0
- /package/dist/{seal-SBA3CFCC.js.map → seal-4QIZ3ZNI.js.map} +0 -0
- /package/dist/{setup-Y6EZH34Z.js.map → setup-4XTUDU4X.js.map} +0 -0
- /package/dist/{visual-PN3PUVDG.js.map → visual-VEMQJ52W.js.map} +0 -0
- /package/dist/{watch-LBRW6NAG.js.map → watch-SPZRLTKG.js.map} +0 -0
package/dist/index.js
CHANGED
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
blocksToPages,
|
|
3
3
|
bmpToPng,
|
|
4
4
|
inlineImagesIntoMarkdown
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-CPVXUEKF.js";
|
|
6
6
|
import {
|
|
7
7
|
parsePageRange
|
|
8
8
|
} from "./chunk-V4BH5SRQ.js";
|
|
@@ -44,7 +44,7 @@ import {
|
|
|
44
44
|
validateOcrOptions,
|
|
45
45
|
visibleText,
|
|
46
46
|
wrapScript
|
|
47
|
-
} from "./chunk-
|
|
47
|
+
} from "./chunk-PDOWSDNM.js";
|
|
48
48
|
import {
|
|
49
49
|
KordocError,
|
|
50
50
|
OPTIONAL_DEP_INSTALL_HINT,
|
|
@@ -62,7 +62,7 @@ import {
|
|
|
62
62
|
toArrayBuffer,
|
|
63
63
|
unescapeHtml,
|
|
64
64
|
unzipLimitBytes
|
|
65
|
-
} from "./chunk-
|
|
65
|
+
} from "./chunk-UNYH6MTO.js";
|
|
66
66
|
|
|
67
67
|
// src/plain-markdown.ts
|
|
68
68
|
function toPlainMarkdown(md2) {
|
|
@@ -24645,7 +24645,7 @@ var MIN_SIDE = 24;
|
|
|
24645
24645
|
async function ocrEmbeddedImages(blocks, options, warnings) {
|
|
24646
24646
|
const ocr = options?.ocr;
|
|
24647
24647
|
if (ocr !== true && ocr !== "force" && typeof ocr !== "function") return false;
|
|
24648
|
-
const { parseImageDocument } = await import("./image-ocr-
|
|
24648
|
+
const { parseImageDocument } = await import("./image-ocr-5YWVBRY6.js");
|
|
24649
24649
|
let inserted = false, unreadable = 0;
|
|
24650
24650
|
let failed = null;
|
|
24651
24651
|
const walk = async (list, depth) => {
|
|
@@ -53524,9 +53524,10 @@ function solveRowHeights(cells, rowCount, maxTotal = Number.POSITIVE_INFINITY, s
|
|
|
53524
53524
|
}
|
|
53525
53525
|
for (let k = 0; k < spans.length; k++) if (!done.has(k)) solve(k, false);
|
|
53526
53526
|
let total = h.reduce((s, x) => s + x, 0);
|
|
53527
|
+
const overSz = total > maxTotal;
|
|
53527
53528
|
for (const { c, rows } of [...spans].sort((a, b) => a.rows[a.rows.length - 1] - b.rows[b.rows.length - 1] || b.rows[0] - a.rows[0])) {
|
|
53528
53529
|
const known = rows.reduce((s, r) => s + h[r], 0);
|
|
53529
|
-
const add = Math.min(c.height - known, maxTotal - total);
|
|
53530
|
+
const add = Math.min(c.height - known, overSz && c.contentH != null && c.contentH >= c.height ? Number.POSITIVE_INFINITY : maxTotal - total);
|
|
53530
53531
|
if (rows.length && add > 0) {
|
|
53531
53532
|
h[rows[rows.length - 1]] += add;
|
|
53532
53533
|
total += add;
|
|
@@ -55596,12 +55597,24 @@ function footNoteStories(root, paraPages, geom) {
|
|
|
55596
55597
|
const above = num2(sp, "aboveLine", 850), below = num2(sp, "belowLine", 567), between = num2(sp, "betweenNotes", 283);
|
|
55597
55598
|
const byPage = /* @__PURE__ */ new Map();
|
|
55598
55599
|
for (const p of elements(root)) if (ln(p) === "p") {
|
|
55599
|
-
const
|
|
55600
|
+
const pages = paraPages.get(p) ?? [];
|
|
55601
|
+
const m = pages.length > 1 ? buildPara(p) : null;
|
|
55600
55602
|
for (const run of elements(p)) if (ln(run) === "run") {
|
|
55601
55603
|
for (const ctrl of elements(run)) if (ln(ctrl) === "ctrl") {
|
|
55602
55604
|
const fn = findChildByLocalName(ctrl, "footNote");
|
|
55603
55605
|
const sub = fn && !isDeletedControl(fn) ? findChildByLocalName(fn, "subList") : null;
|
|
55604
55606
|
if (!sub) continue;
|
|
55607
|
+
let page = pages[0] ?? 0;
|
|
55608
|
+
if (m) {
|
|
55609
|
+
const at = m.chars.findIndex((c) => c.note === fn);
|
|
55610
|
+
if (at >= 0) {
|
|
55611
|
+
let k = 0;
|
|
55612
|
+
m.segs.forEach((sg, i) => {
|
|
55613
|
+
if (sg.textpos <= at) k = i;
|
|
55614
|
+
});
|
|
55615
|
+
page = pages[k] ?? page;
|
|
55616
|
+
}
|
|
55617
|
+
}
|
|
55605
55618
|
let h = 0;
|
|
55606
55619
|
for (const q of elements(sub)) if (ln(q) === "p") {
|
|
55607
55620
|
const lsa = findChildByLocalName(q, "linesegarray");
|
|
@@ -55713,18 +55726,30 @@ function stackedFloats(c) {
|
|
|
55713
55726
|
}
|
|
55714
55727
|
return out;
|
|
55715
55728
|
}
|
|
55716
|
-
function cellLineBoxes(c) {
|
|
55729
|
+
function cellLineBoxes(c, bodyH) {
|
|
55717
55730
|
const out = [];
|
|
55718
55731
|
let shift = 0, prevV = Number.NEGATIVE_INFINITY, prevH = 0, prevSavedEnd = 0, prevEnd = 0, part = 0;
|
|
55719
55732
|
const cols = cellColumns(c.sub);
|
|
55733
|
+
let floatBottom = Number.NEGATIVE_INFINITY;
|
|
55734
|
+
let nestedCell = false;
|
|
55735
|
+
for (let a = c.el.parentNode; a; a = a.parentNode) if (a !== c.el && a.nodeType === 1 && ln(a) === "tc") {
|
|
55736
|
+
nestedCell = true;
|
|
55737
|
+
break;
|
|
55738
|
+
}
|
|
55720
55739
|
for (const p of c.sub ? elements(c.sub) : []) if (ln(p) === "p") {
|
|
55721
55740
|
const lsa = findChildByLocalName(p, "linesegarray");
|
|
55741
|
+
let first = true, pTop = 0;
|
|
55722
55742
|
for (const sg of lsa ? elements(lsa) : []) if (ln(sg) === "lineseg") {
|
|
55723
55743
|
const v = num2(sg, "vertpos"), hz = num2(sg, "horzpos");
|
|
55724
55744
|
if ((v < prevV || v === prevV && hz <= prevH && prevSavedEnd > v) && !cols) {
|
|
55725
55745
|
shift = prevEnd - v;
|
|
55726
55746
|
part++;
|
|
55747
|
+
} else if (!nestedCell && bodyH !== void 0 && floatBottom > bodyH && first && !cols && v >= prevV && v < floatBottom - 1e3) {
|
|
55748
|
+
shift = prevEnd - v;
|
|
55749
|
+
part++;
|
|
55727
55750
|
}
|
|
55751
|
+
if (first) pTop = prevSavedEnd > 0 && prevSavedEnd <= v ? prevSavedEnd : v;
|
|
55752
|
+
first = false;
|
|
55728
55753
|
prevV = v;
|
|
55729
55754
|
prevH = hz;
|
|
55730
55755
|
prevSavedEnd = v + num2(sg, "vertsize") + num2(sg, "spacing");
|
|
@@ -55732,17 +55757,26 @@ function cellLineBoxes(c) {
|
|
|
55732
55757
|
prevEnd = bottom + num2(sg, "spacing");
|
|
55733
55758
|
out.push({ seg: sg, top, bottom, part, origin: shift });
|
|
55734
55759
|
}
|
|
55760
|
+
floatBottom = Number.NEGATIVE_INFINITY;
|
|
55761
|
+
for (const run of elements(p)) if (ln(run) === "run") for (const o of elements(run)) {
|
|
55762
|
+
if (ln(o) !== "tbl" || (o.getAttribute("textWrap") ?? "TOP_AND_BOTTOM") !== "TOP_AND_BOTTOM") continue;
|
|
55763
|
+
const pos = findChildByLocalName(o, "pos");
|
|
55764
|
+
if (!pos || pos.getAttribute("treatAsChar") === "1" || (pos.getAttribute("vertRelTo") ?? "PARA") !== "PARA") continue;
|
|
55765
|
+
const om = findChildByLocalName(o, "outMargin"), vo = num2(pos, "vertOffset"), sz = num2(findChildByLocalName(o, "sz"), "height"), full = measureTableHeight(o);
|
|
55766
|
+
const top = pTop + (vo < 2 ** 31 ? vo : 0) + num2(om, "top");
|
|
55767
|
+
if (full > sz + 1e3 && (bodyH === void 0 || top + (measureTableRowHeights(o)[0] ?? 0) <= bodyH)) floatBottom = Math.max(floatBottom, top + full + num2(om, "bottom"));
|
|
55768
|
+
}
|
|
55735
55769
|
}
|
|
55736
55770
|
return out;
|
|
55737
55771
|
}
|
|
55738
|
-
function cellLines(c) {
|
|
55739
|
-
return cellLineBoxes(c).map((b) => [b.top, b.bottom]);
|
|
55772
|
+
function cellLines(c, bodyH) {
|
|
55773
|
+
return cellLineBoxes(c, bodyH).map((b) => [b.top, b.bottom]);
|
|
55740
55774
|
}
|
|
55741
|
-
function spanPartRows(cells, rowY) {
|
|
55775
|
+
function spanPartRows(cells, rowY, bodyH) {
|
|
55742
55776
|
const out = /* @__PURE__ */ new Set();
|
|
55743
55777
|
for (const c of cells) {
|
|
55744
55778
|
if (c.rs < 2) continue;
|
|
55745
|
-
const bs = cellLineBoxes(c);
|
|
55779
|
+
const bs = cellLineBoxes(c, bodyH);
|
|
55746
55780
|
const parts = bs.length ? bs[bs.length - 1].part : 0;
|
|
55747
55781
|
let s = c.ra;
|
|
55748
55782
|
for (let k = 0; k < parts; k++) {
|
|
@@ -55786,12 +55820,12 @@ function planTableRows(tbl2, cells, rowH, ty, MT, BODY_H, slack = 0, floatSpan,
|
|
|
55786
55820
|
const st = stackedFloats(rc[0]);
|
|
55787
55821
|
return st.length >= 2 && st.reduce((a, f) => a + f.h, 0) > h;
|
|
55788
55822
|
});
|
|
55789
|
-
if (slack > 0 && ty + rowY[nRows] > pageBottom && ty + rowY[nRows] <= pageBottom + slack && cells.some((c) => cellLineBoxes(c).some((b) => b.part > 0))) slack = 0;
|
|
55823
|
+
if (slack > 0 && ty + rowY[nRows] > pageBottom && ty + rowY[nRows] <= pageBottom + slack && cells.some((c) => cellLineBoxes(c, BODY_H).some((b) => b.part > 0))) slack = 0;
|
|
55790
55824
|
if (slack > 0 && ty + rowY[nRows] > pageBottom && ty + rowY[nRows] <= pageBottom + slack) {
|
|
55791
55825
|
const declared = num2(findChildByLocalName(tbl2, "sz"), "height");
|
|
55792
55826
|
if (rowY.some((v, k) => k > 0 && k < nRows && Math.abs(v - declared) <= 2)) slack = 0;
|
|
55793
55827
|
}
|
|
55794
|
-
const savedParts = tbl2.getAttribute("pageBreak") === "CELL" && cells.some((c) => c.h > rowY[nRows] && cellLineBoxes(c).some((b) => b.part > 0));
|
|
55828
|
+
const savedParts = tbl2.getAttribute("pageBreak") === "CELL" && cells.some((c) => c.h > rowY[nRows] && cellLineBoxes(c, BODY_H).some((b) => b.part > 0));
|
|
55795
55829
|
if (BODY_H <= 0 || ty + rowY[nRows] <= pageBottom + slack && !stackOver && !savedParts) return plain4();
|
|
55796
55830
|
if (findChildByLocalName(tbl2, "pos")?.getAttribute("treatAsChar") === "1") {
|
|
55797
55831
|
const declared = num2(findChildByLocalName(tbl2, "sz"), "height") || rowY[nRows];
|
|
@@ -55806,11 +55840,15 @@ function planTableRows(tbl2, cells, rowH, ty, MT, BODY_H, slack = 0, floatSpan,
|
|
|
55806
55840
|
const out = [];
|
|
55807
55841
|
const flows = (findChildByLocalName(tbl2, "pos")?.getAttribute("vertRelTo") ?? "PARA") === "PARA";
|
|
55808
55842
|
let page = 0, y = ty, first = !flows || ty - MT < 2e3;
|
|
55843
|
+
if (!first && (tbl2.getAttribute("pageBreak") ?? "NONE") === "NONE") {
|
|
55844
|
+
const outT = num2(findChildByLocalName(tbl2, "outMargin"), "top");
|
|
55845
|
+
if (outT + rowY[nRows] + outB <= BODY_H) return rowH.map((h, r) => [{ page: 1, y: contMT + outT + rowY[r], h }]);
|
|
55846
|
+
}
|
|
55809
55847
|
if (!first && coAnchoredFollower(tbl2)) {
|
|
55810
55848
|
const outT = num2(findChildByLocalName(tbl2, "outMargin"), "top");
|
|
55811
55849
|
if (outT + rowY[nRows] + outB <= BODY_H) return rowH.map((h, r) => [{ page: 1, y: contMT + outT + rowY[r], h }]);
|
|
55812
55850
|
}
|
|
55813
|
-
const spanStarts = cellSplit ? spanPartRows(cells, rowY) : /* @__PURE__ */ new Set();
|
|
55851
|
+
const spanStarts = cellSplit ? spanPartRows(cells, rowY, BODY_H) : /* @__PURE__ */ new Set();
|
|
55814
55852
|
for (let r = 0; r < nRows; r++) {
|
|
55815
55853
|
let h = rowH[r];
|
|
55816
55854
|
const pieces = [];
|
|
@@ -55849,7 +55887,7 @@ function planTableRows(tbl2, cells, rowH, ty, MT, BODY_H, slack = 0, floatSpan,
|
|
|
55849
55887
|
continue;
|
|
55850
55888
|
}
|
|
55851
55889
|
}
|
|
55852
|
-
const boxes = splittable ? new Map(rowCells.map((c) => [c.el, cellLineBoxes(c)])) : void 0;
|
|
55890
|
+
const boxes = splittable ? new Map(rowCells.map((c) => [c.el, cellLineBoxes(c, BODY_H)])) : void 0;
|
|
55853
55891
|
const hParts = boxes ? Math.max(0, ...[...boxes.values()].flatMap((bs) => bs.map((b) => b.part))) : 0;
|
|
55854
55892
|
if (boxes && hParts > 0) {
|
|
55855
55893
|
if (!first && rowCells.some((c) => {
|
|
@@ -55959,9 +55997,9 @@ function planTableRows(tbl2, cells, rowH, ty, MT, BODY_H, slack = 0, floatSpan,
|
|
|
55959
55997
|
}
|
|
55960
55998
|
if (splittable && y + h + outB > pageBottom) {
|
|
55961
55999
|
const from = /* @__PURE__ */ new Map();
|
|
55962
|
-
const lines = new Map(rowCells.map((c) => [c.el, cellLines(c)]));
|
|
56000
|
+
const lines = new Map(rowCells.map((c) => [c.el, cellLines(c, BODY_H)]));
|
|
55963
56001
|
const sp0 = new Map(rowCells.map((c) => {
|
|
55964
|
-
const b = cellLineBoxes(c)[0];
|
|
56002
|
+
const b = cellLineBoxes(c, BODY_H)[0];
|
|
55965
56003
|
return [c.el, b ? num2(b.seg, "spacing") : 0];
|
|
55966
56004
|
}));
|
|
55967
56005
|
while (y + h + outB > pageBottom && BODY_H > rowY[hdrRows]) {
|
|
@@ -55990,7 +56028,7 @@ function planTableRows(tbl2, cells, rowH, ty, MT, BODY_H, slack = 0, floatSpan,
|
|
|
55990
56028
|
if (allFit) {
|
|
55991
56029
|
const spanCells = cells.filter((c) => c.ra === r && c.rs > 1);
|
|
55992
56030
|
const spanExt = (c) => {
|
|
55993
|
-
const bs = cellLineBoxes(c);
|
|
56031
|
+
const bs = cellLineBoxes(c, BODY_H);
|
|
55994
56032
|
return bs.some((b) => b.part > 0) ? Math.max(...bs.filter((b) => b.part === 0).map((b) => b.bottom)) : cellContentExtent(c);
|
|
55995
56033
|
};
|
|
55996
56034
|
if (!first && h <= pageBottom - contTop && [...rowCells.map((c) => cellContentExtent(c) + c.marginT + c.marginB), ...spanCells.map((c) => spanExt(c) + c.marginT + c.marginB)].some((e) => e > avail)) {
|
|
@@ -57140,7 +57178,7 @@ function drawTable(tbl2, tx, ty, ctx, depth) {
|
|
|
57140
57178
|
const span2 = plan.slice(c.ra, Math.min(c.ra + c.rs, nRows)).flat();
|
|
57141
57179
|
const pages = [...new Set(span2.map((pc) => pc.page))];
|
|
57142
57180
|
if (pages.length > 1) {
|
|
57143
|
-
const bs = cellLineBoxes(c);
|
|
57181
|
+
const bs = cellLineBoxes(c, ctx.geom.BODY_H);
|
|
57144
57182
|
const partTop = (k) => bs.find((b) => b.part === k);
|
|
57145
57183
|
const groups = pages.map((pg, k) => {
|
|
57146
57184
|
const on = span2.filter((pc) => pc.page === pg);
|
|
@@ -57173,7 +57211,7 @@ function drawTable(tbl2, tx, ty, ctx, depth) {
|
|
|
57173
57211
|
ctx.page = g3.page;
|
|
57174
57212
|
if (g3.pieces) {
|
|
57175
57213
|
const base = g3.pieces[0].y + c.marginT;
|
|
57176
|
-
const boxes = cellLineBoxes(c);
|
|
57214
|
+
const boxes = cellLineBoxes(c, ctx.geom.BODY_H);
|
|
57177
57215
|
const contV = new Map(boxes.map((b) => [b.seg, b.top]));
|
|
57178
57216
|
const pieceOf = (v) => Math.max(0, g3.pieces.findIndex((pc) => {
|
|
57179
57217
|
const r = pc.range?.get(c.el);
|
|
@@ -57376,6 +57414,19 @@ function staleTopCache(root, BODY_H) {
|
|
|
57376
57414
|
}
|
|
57377
57415
|
return false;
|
|
57378
57416
|
}
|
|
57417
|
+
function overrunTopCache(root, BODY_H) {
|
|
57418
|
+
if (BODY_H <= 0) return false;
|
|
57419
|
+
let over = 0;
|
|
57420
|
+
for (const p of elements(root)) {
|
|
57421
|
+
if (ln(p) !== "p") continue;
|
|
57422
|
+
const lsa = findChildByLocalName(p, "linesegarray");
|
|
57423
|
+
for (const sg of lsa ? elements(lsa) : []) if (ln(sg) === "lineseg") {
|
|
57424
|
+
over = num2(sg, "vertpos") > BODY_H ? over + 1 : 0;
|
|
57425
|
+
if (over >= 3) return true;
|
|
57426
|
+
}
|
|
57427
|
+
}
|
|
57428
|
+
return false;
|
|
57429
|
+
}
|
|
57379
57430
|
function absoluteTopCache(root, ML, BODY_W) {
|
|
57380
57431
|
let tot = 0, over = 0;
|
|
57381
57432
|
for (const p of elements(root)) {
|
|
@@ -57393,7 +57444,7 @@ function absoluteTopCache(root, ML, BODY_W) {
|
|
|
57393
57444
|
function renderSectionToPages(root, geom, ctxBase, doReflow, reflowMode, masters = [], hasDeletionMarkers = true, lastSection = true) {
|
|
57394
57445
|
const { PW, PH, ML, MT, BODY_W, BODY_H } = geom;
|
|
57395
57446
|
if (hasDeletionMarkers) prepareDeletedRanges(root);
|
|
57396
|
-
const degenerate = staleTopCache(root, BODY_H);
|
|
57447
|
+
const degenerate = staleTopCache(root, BODY_H) || overrunTopCache(root, BODY_H);
|
|
57397
57448
|
if (degenerate) {
|
|
57398
57449
|
for (const p of elements(root)) if (ln(p) === "p") {
|
|
57399
57450
|
const lsa = findChildByLocalName(p, "linesegarray");
|
|
@@ -57401,6 +57452,19 @@ function renderSectionToPages(root, geom, ctxBase, doReflow, reflowMode, masters
|
|
|
57401
57452
|
}
|
|
57402
57453
|
ctxBase.warnings.push("\uC870\uD310 \uCE90\uC2DC\uAC00 \uB9DE\uC9C0 \uC54A\uC544(\uCD5C\uC0C1\uC704 \uBB38\uB2E8\uC774 \uBAA8\uB450 \uAC19\uC740 \uC790\uB9AC) \uB2E4\uC2DC \uC870\uD310\uD574 \uB80C\uB354");
|
|
57403
57454
|
}
|
|
57455
|
+
for (const tc2 of Array.from(root.getElementsByTagName("*")).filter((e) => ln(e) === "tc")) {
|
|
57456
|
+
const sub = findChildByLocalName(tc2, "subList");
|
|
57457
|
+
const paras = sub ? elements(sub).filter((q) => ln(q) === "p") : [];
|
|
57458
|
+
const vs = [];
|
|
57459
|
+
for (const q of paras) {
|
|
57460
|
+
const lsa = findChildByLocalName(q, "linesegarray");
|
|
57461
|
+
for (const sg of lsa ? elements(lsa) : []) if (ln(sg) === "lineseg") vs.push(num2(sg, "vertpos"));
|
|
57462
|
+
}
|
|
57463
|
+
if (vs.length >= 3 && (vs.every((v) => v === vs[0]) || vs.some((v, i) => i >= 2 && v === vs[i - 1] && v === vs[i - 2]))) for (const q of paras) {
|
|
57464
|
+
const lsa = findChildByLocalName(q, "linesegarray");
|
|
57465
|
+
if (lsa) q.removeChild(lsa);
|
|
57466
|
+
}
|
|
57467
|
+
}
|
|
57404
57468
|
const absolute = !degenerate && absoluteTopCache(root, ML, BODY_W);
|
|
57405
57469
|
if (absolute) {
|
|
57406
57470
|
for (const lsa of Array.from(root.getElementsByTagName("*")).filter((e) => ln(e) === "linesegarray")) lsa.parentNode?.removeChild(lsa);
|
|
@@ -57434,7 +57498,7 @@ function renderSectionToPages(root, geom, ctxBase, doReflow, reflowMode, masters
|
|
|
57434
57498
|
let prevH = Number.NEGATIVE_INFINITY;
|
|
57435
57499
|
let prevEnd = Number.NEGATIVE_INFINITY;
|
|
57436
57500
|
let cur = 0, col = 0;
|
|
57437
|
-
let pendingEnd = 0, pendingEndY = 0;
|
|
57501
|
+
let pendingEnd = 0, pendingEndY = 0, pendingTopY = -1;
|
|
57438
57502
|
let lastEnd = 0, lastPage = -1;
|
|
57439
57503
|
let lastSA = 0;
|
|
57440
57504
|
let prevSeg;
|
|
@@ -57459,7 +57523,7 @@ function renderSectionToPages(root, geom, ctxBase, doReflow, reflowMode, masters
|
|
|
57459
57523
|
}
|
|
57460
57524
|
if (col > 0) s.setAttribute("horzpos", String(h + Math.round(col * (colW + colGap))));
|
|
57461
57525
|
} else {
|
|
57462
|
-
if (paraFirst && pendingEnd > cur) {
|
|
57526
|
+
if (paraFirst && pendingEnd > cur && !(v > prevV && v < pendingTopY - 100)) {
|
|
57463
57527
|
cur = v < pendingEndY - 100 ? pendingEnd + 1 : pendingEnd;
|
|
57464
57528
|
pendingEnd = 0;
|
|
57465
57529
|
} else {
|
|
@@ -57531,9 +57595,10 @@ function renderSectionToPages(root, geom, ctxBase, doReflow, reflowMode, masters
|
|
|
57531
57595
|
lastPage = pagesOf[pagesOf.length - 1];
|
|
57532
57596
|
continue;
|
|
57533
57597
|
}
|
|
57534
|
-
if (span2.pages > 0 && (pagesOf[0] ?? cur) + span2.pages > pendingEnd) {
|
|
57598
|
+
if (span2.pages > 0 && o.el.getAttribute("pageBreak") !== "NONE" && (pagesOf[0] ?? cur) + span2.pages > pendingEnd) {
|
|
57535
57599
|
pendingEnd = (pagesOf[0] ?? cur) + span2.pages;
|
|
57536
57600
|
pendingEndY = span2.endY - MT;
|
|
57601
|
+
pendingTopY = below && voP > 0 && ty - MT < BODY_H ? ty - MT : -1;
|
|
57537
57602
|
}
|
|
57538
57603
|
}
|
|
57539
57604
|
}
|
|
@@ -57768,7 +57833,7 @@ function renderSectionRoots(sections, input) {
|
|
|
57768
57833
|
return pm.objs.length > 0 || pm.chars.some((c) => c.ch.trim() !== "" || !!c.ctrlText);
|
|
57769
57834
|
});
|
|
57770
57835
|
let lastIdx = sections.length - 1;
|
|
57771
|
-
while (lastIdx > 0 && !hasContent(sections[lastIdx].root)) lastIdx--;
|
|
57836
|
+
while (lastIdx > 0 && !hasContent(sections[lastIdx].root) && !sections[lastIdx].masterPages?.length) lastIdx--;
|
|
57772
57837
|
for (const [k, { root, index, masterPages, hasDeletionMarkers }] of sections.entries()) {
|
|
57773
57838
|
if (k > lastIdx) break;
|
|
57774
57839
|
const geom = readSectionGeom(root);
|
|
@@ -58920,7 +58985,7 @@ function scriptsOff(r, off) {
|
|
|
58920
58985
|
}
|
|
58921
58986
|
async function parseImage(buffer, options) {
|
|
58922
58987
|
try {
|
|
58923
|
-
const { parseImageDocument } = await import("./image-ocr-
|
|
58988
|
+
const { parseImageDocument } = await import("./image-ocr-5YWVBRY6.js");
|
|
58924
58989
|
const { blocks, warnings, lines } = await parseImageDocument(buffer, options);
|
|
58925
58990
|
stripScriptTags({ blocks });
|
|
58926
58991
|
return {
|
|
@@ -58984,7 +59049,7 @@ async function parseHwp(buffer, options) {
|
|
|
58984
59049
|
async function parsePdf(buffer, options) {
|
|
58985
59050
|
let parsePdfDocument;
|
|
58986
59051
|
try {
|
|
58987
|
-
const mod = await import("./parser-
|
|
59052
|
+
const mod = await import("./parser-G5QTRKII.js");
|
|
58988
59053
|
parsePdfDocument = mod.parsePdfDocument;
|
|
58989
59054
|
} catch {
|
|
58990
59055
|
return {
|