@rhwp/core 0.7.8 → 0.7.10

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rhwp/core",
3
- "version": "0.7.8",
3
+ "version": "0.7.10",
4
4
  "description": "HWP/HWPX file parser and renderer — Rust + WebAssembly",
5
5
  "type": "module",
6
6
  "main": "rhwp.js",
package/rhwp.d.ts CHANGED
@@ -144,6 +144,7 @@ export class HwpDocument {
144
144
  * 머리말/꼬리말을 삭제한다 (컨트롤 자체 제거).
145
145
  */
146
146
  deleteHeaderFooter(section_idx: number, is_header: boolean, apply_to: number): string;
147
+ deleteParagraph(section_idx: number, para_idx: number): string;
147
148
  /**
148
149
  * 그림 컨트롤을 문단에서 삭제한다.
149
150
  *
@@ -805,6 +806,7 @@ export class HwpDocument {
805
806
  * 강제 쪽 나누기 삽입 (Ctrl+Enter)
806
807
  */
807
808
  insertPageBreak(section_idx: number, para_idx: number, char_offset: number): string;
809
+ insertParagraph(section_idx: number, para_idx: number): string;
808
810
  /**
809
811
  * 커서 위치에 그림을 삽입한다.
810
812
  *
@@ -1002,6 +1004,7 @@ export class HwpDocument {
1002
1004
  * 특정 페이지를 Canvas 명령 수로 반환한다.
1003
1005
  */
1004
1006
  renderPageCanvas(page_num: number): number;
1007
+ renderPageCanvasLegacy(page_num: number): number;
1005
1008
  /**
1006
1009
  * 특정 페이지를 HTML 문자열로 렌더링한다.
1007
1010
  */
@@ -1017,6 +1020,22 @@ export class HwpDocument {
1017
1020
  * scale이 0 이하이면 1.0으로 처리한다 (하위호환).
1018
1021
  */
1019
1022
  renderPageToCanvas(page_num: number, canvas: HTMLCanvasElement, scale: number): void;
1023
+ /**
1024
+ * 다층 레이어 필터를 적용한 Canvas 렌더링 (Task #516, Stage 5.2).
1025
+ *
1026
+ * `layer_kind`:
1027
+ * - `"all"` → 모든 그림 렌더 (기본 `renderPageToCanvas` 와 동일)
1028
+ * - `"flow"` → 본문 layer (BehindText / InFrontOfText 그림 제외)
1029
+ * - `"behind"` → BehindText overlay layer
1030
+ * - `"front"` → InFrontOfText overlay layer
1031
+ *
1032
+ * 본문 Canvas 와 overlay 컨테이너를 분리하는 다층 layer 아키텍처에서 사용.
1033
+ */
1034
+ renderPageToCanvasFiltered(page_num: number, canvas: HTMLCanvasElement, scale: number, layer_kind: string): void;
1035
+ /**
1036
+ * 특정 페이지를 기존 PageRenderTree 경로로 Canvas 2D에 직접 렌더링한다.
1037
+ */
1038
+ renderPageToCanvasLegacy(page_num: number, canvas: HTMLCanvasElement, scale: number): void;
1020
1039
  /**
1021
1040
  * 전체 치환
1022
1041
  */
@@ -1322,8 +1341,6 @@ export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembl
1322
1341
 
1323
1342
  export interface InitOutput {
1324
1343
  readonly memory: WebAssembly.Memory;
1325
- readonly version: () => [number, number];
1326
- readonly init_panic_hook: () => void;
1327
1344
  readonly __wbg_hwpdocument_free: (a: number, b: number) => void;
1328
1345
  readonly __wbg_hwpviewer_free: (a: number, b: number) => void;
1329
1346
  readonly extractThumbnail: (a: number, b: number) => any;
@@ -1355,6 +1372,7 @@ export interface InitOutput {
1355
1372
  readonly hwpdocument_createTableEx: (a: number, b: number, c: number) => [number, number, number, number];
1356
1373
  readonly hwpdocument_deleteBookmark: (a: number, b: number, c: number, d: number) => [number, number, number, number];
1357
1374
  readonly hwpdocument_deleteHeaderFooter: (a: number, b: number, c: number, d: number) => [number, number, number, number];
1375
+ readonly hwpdocument_deleteParagraph: (a: number, b: number, c: number) => [number, number, number, number];
1358
1376
  readonly hwpdocument_deletePictureControl: (a: number, b: number, c: number, d: number) => [number, number, number, number];
1359
1377
  readonly hwpdocument_deleteRange: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number, number];
1360
1378
  readonly hwpdocument_deleteRangeInCell: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => [number, number, number, number];
@@ -1479,6 +1497,7 @@ export interface InitOutput {
1479
1497
  readonly hwpdocument_insertFieldInHf: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number, number, number];
1480
1498
  readonly hwpdocument_insertFootnote: (a: number, b: number, c: number, d: number) => [number, number, number, number];
1481
1499
  readonly hwpdocument_insertPageBreak: (a: number, b: number, c: number, d: number) => [number, number, number, number];
1500
+ readonly hwpdocument_insertParagraph: (a: number, b: number, c: number) => [number, number, number, number];
1482
1501
  readonly hwpdocument_insertPicture: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number) => [number, number, number, number];
1483
1502
  readonly hwpdocument_insertTableColumn: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number, number];
1484
1503
  readonly hwpdocument_insertTableRow: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number, number];
@@ -1515,9 +1534,12 @@ export interface InitOutput {
1515
1534
  readonly hwpdocument_renameBookmark: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number, number];
1516
1535
  readonly hwpdocument_renderEquationPreview: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
1517
1536
  readonly hwpdocument_renderPageCanvas: (a: number, b: number) => [number, number, number];
1537
+ readonly hwpdocument_renderPageCanvasLegacy: (a: number, b: number) => [number, number, number];
1518
1538
  readonly hwpdocument_renderPageHtml: (a: number, b: number) => [number, number, number, number];
1519
1539
  readonly hwpdocument_renderPageSvg: (a: number, b: number) => [number, number, number, number];
1520
1540
  readonly hwpdocument_renderPageToCanvas: (a: number, b: number, c: any, d: number) => [number, number];
1541
+ readonly hwpdocument_renderPageToCanvasFiltered: (a: number, b: number, c: any, d: number, e: number, f: number) => [number, number];
1542
+ readonly hwpdocument_renderPageToCanvasLegacy: (a: number, b: number, c: any, d: number) => [number, number];
1521
1543
  readonly hwpdocument_replaceAll: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number, number];
1522
1544
  readonly hwpdocument_replaceOne: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number, number];
1523
1545
  readonly hwpdocument_replaceText: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number, number, number];
@@ -1575,6 +1597,8 @@ export interface InitOutput {
1575
1597
  readonly hwpviewer_updateViewport: (a: number, b: number, c: number, d: number, e: number) => void;
1576
1598
  readonly hwpviewer_visiblePages: (a: number) => [number, number];
1577
1599
  readonly hwpviewer_pageCount: (a: number) => number;
1600
+ readonly version: () => [number, number];
1601
+ readonly init_panic_hook: () => void;
1578
1602
  readonly __wbindgen_exn_store: (a: number) => void;
1579
1603
  readonly __externref_table_alloc: () => number;
1580
1604
  readonly __wbindgen_externrefs: WebAssembly.Table;
package/rhwp.js CHANGED
@@ -679,6 +679,29 @@ export class HwpDocument {
679
679
  wasm.__wbindgen_free(deferred2_0, deferred2_1, 1);
680
680
  }
681
681
  }
682
+ /**
683
+ * @param {number} section_idx
684
+ * @param {number} para_idx
685
+ * @returns {string}
686
+ */
687
+ deleteParagraph(section_idx, para_idx) {
688
+ let deferred2_0;
689
+ let deferred2_1;
690
+ try {
691
+ const ret = wasm.hwpdocument_deleteParagraph(this.__wbg_ptr, section_idx, para_idx);
692
+ var ptr1 = ret[0];
693
+ var len1 = ret[1];
694
+ if (ret[3]) {
695
+ ptr1 = 0; len1 = 0;
696
+ throw takeFromExternrefTable0(ret[2]);
697
+ }
698
+ deferred2_0 = ptr1;
699
+ deferred2_1 = len1;
700
+ return getStringFromWasm0(ptr1, len1);
701
+ } finally {
702
+ wasm.__wbindgen_free(deferred2_0, deferred2_1, 1);
703
+ }
704
+ }
682
705
  /**
683
706
  * 그림 컨트롤을 문단에서 삭제한다.
684
707
  *
@@ -3541,6 +3564,29 @@ export class HwpDocument {
3541
3564
  wasm.__wbindgen_free(deferred2_0, deferred2_1, 1);
3542
3565
  }
3543
3566
  }
3567
+ /**
3568
+ * @param {number} section_idx
3569
+ * @param {number} para_idx
3570
+ * @returns {string}
3571
+ */
3572
+ insertParagraph(section_idx, para_idx) {
3573
+ let deferred2_0;
3574
+ let deferred2_1;
3575
+ try {
3576
+ const ret = wasm.hwpdocument_insertParagraph(this.__wbg_ptr, section_idx, para_idx);
3577
+ var ptr1 = ret[0];
3578
+ var len1 = ret[1];
3579
+ if (ret[3]) {
3580
+ ptr1 = 0; len1 = 0;
3581
+ throw takeFromExternrefTable0(ret[2]);
3582
+ }
3583
+ deferred2_0 = ptr1;
3584
+ deferred2_1 = len1;
3585
+ return getStringFromWasm0(ptr1, len1);
3586
+ } finally {
3587
+ wasm.__wbindgen_free(deferred2_0, deferred2_1, 1);
3588
+ }
3589
+ }
3544
3590
  /**
3545
3591
  * 커서 위치에 그림을 삽입한다.
3546
3592
  *
@@ -4507,6 +4553,17 @@ export class HwpDocument {
4507
4553
  }
4508
4554
  return ret[0] >>> 0;
4509
4555
  }
4556
+ /**
4557
+ * @param {number} page_num
4558
+ * @returns {number}
4559
+ */
4560
+ renderPageCanvasLegacy(page_num) {
4561
+ const ret = wasm.hwpdocument_renderPageCanvasLegacy(this.__wbg_ptr, page_num);
4562
+ if (ret[2]) {
4563
+ throw takeFromExternrefTable0(ret[1]);
4564
+ }
4565
+ return ret[0] >>> 0;
4566
+ }
4510
4567
  /**
4511
4568
  * 특정 페이지를 HTML 문자열로 렌더링한다.
4512
4569
  * @param {number} page_num
@@ -4568,6 +4625,41 @@ export class HwpDocument {
4568
4625
  throw takeFromExternrefTable0(ret[0]);
4569
4626
  }
4570
4627
  }
4628
+ /**
4629
+ * 다층 레이어 필터를 적용한 Canvas 렌더링 (Task #516, Stage 5.2).
4630
+ *
4631
+ * `layer_kind`:
4632
+ * - `"all"` → 모든 그림 렌더 (기본 `renderPageToCanvas` 와 동일)
4633
+ * - `"flow"` → 본문 layer (BehindText / InFrontOfText 그림 제외)
4634
+ * - `"behind"` → BehindText overlay layer
4635
+ * - `"front"` → InFrontOfText overlay layer
4636
+ *
4637
+ * 본문 Canvas 와 overlay 컨테이너를 분리하는 다층 layer 아키텍처에서 사용.
4638
+ * @param {number} page_num
4639
+ * @param {HTMLCanvasElement} canvas
4640
+ * @param {number} scale
4641
+ * @param {string} layer_kind
4642
+ */
4643
+ renderPageToCanvasFiltered(page_num, canvas, scale, layer_kind) {
4644
+ const ptr0 = passStringToWasm0(layer_kind, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
4645
+ const len0 = WASM_VECTOR_LEN;
4646
+ const ret = wasm.hwpdocument_renderPageToCanvasFiltered(this.__wbg_ptr, page_num, canvas, scale, ptr0, len0);
4647
+ if (ret[1]) {
4648
+ throw takeFromExternrefTable0(ret[0]);
4649
+ }
4650
+ }
4651
+ /**
4652
+ * 특정 페이지를 기존 PageRenderTree 경로로 Canvas 2D에 직접 렌더링한다.
4653
+ * @param {number} page_num
4654
+ * @param {HTMLCanvasElement} canvas
4655
+ * @param {number} scale
4656
+ */
4657
+ renderPageToCanvasLegacy(page_num, canvas, scale) {
4658
+ const ret = wasm.hwpdocument_renderPageToCanvasLegacy(this.__wbg_ptr, page_num, canvas, scale);
4659
+ if (ret[1]) {
4660
+ throw takeFromExternrefTable0(ret[0]);
4661
+ }
4662
+ }
4571
4663
  /**
4572
4664
  * 전체 치환
4573
4665
  * @param {string} query
@@ -5951,7 +6043,7 @@ function __wbg_get_imports() {
5951
6043
  __wbg_lineTo_fe5522fbbf79a59d: function(arg0, arg1, arg2) {
5952
6044
  arg0.lineTo(arg1, arg2);
5953
6045
  },
5954
- __wbg_measureTextWidth_3cd91d175f951e1d: function(arg0, arg1, arg2, arg3) {
6046
+ __wbg_measureTextWidth_8348d9e9c7b34407: function(arg0, arg1, arg2, arg3) {
5955
6047
  const ret = globalThis.measureTextWidth(getStringFromWasm0(arg0, arg1), getStringFromWasm0(arg2, arg3));
5956
6048
  return ret;
5957
6049
  },
@@ -6008,6 +6100,9 @@ function __wbg_get_imports() {
6008
6100
  __wbg_set_fillStyle_a37bbe1a6cf22936: function(arg0, arg1) {
6009
6101
  arg0.fillStyle = arg1;
6010
6102
  },
6103
+ __wbg_set_filter_73c9d4b507a71b7f: function(arg0, arg1, arg2) {
6104
+ arg0.filter = getStringFromWasm0(arg1, arg2);
6105
+ },
6011
6106
  __wbg_set_font_5b1b8c76449f5864: function(arg0, arg1, arg2) {
6012
6107
  arg0.font = getStringFromWasm0(arg1, arg2);
6013
6108
  },
package/rhwp_bg.wasm CHANGED
Binary file
package/rhwp_bg.wasm.d.ts CHANGED
@@ -1,8 +1,6 @@
1
1
  /* tslint:disable */
2
2
  /* eslint-disable */
3
3
  export const memory: WebAssembly.Memory;
4
- export const version: () => [number, number];
5
- export const init_panic_hook: () => void;
6
4
  export const __wbg_hwpdocument_free: (a: number, b: number) => void;
7
5
  export const __wbg_hwpviewer_free: (a: number, b: number) => void;
8
6
  export const extractThumbnail: (a: number, b: number) => any;
@@ -34,6 +32,7 @@ export const hwpdocument_createTable: (a: number, b: number, c: number, d: numbe
34
32
  export const hwpdocument_createTableEx: (a: number, b: number, c: number) => [number, number, number, number];
35
33
  export const hwpdocument_deleteBookmark: (a: number, b: number, c: number, d: number) => [number, number, number, number];
36
34
  export const hwpdocument_deleteHeaderFooter: (a: number, b: number, c: number, d: number) => [number, number, number, number];
35
+ export const hwpdocument_deleteParagraph: (a: number, b: number, c: number) => [number, number, number, number];
37
36
  export const hwpdocument_deletePictureControl: (a: number, b: number, c: number, d: number) => [number, number, number, number];
38
37
  export const hwpdocument_deleteRange: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number, number];
39
38
  export const hwpdocument_deleteRangeInCell: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => [number, number, number, number];
@@ -158,6 +157,7 @@ export const hwpdocument_insertColumnBreak: (a: number, b: number, c: number, d:
158
157
  export const hwpdocument_insertFieldInHf: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number, number, number];
159
158
  export const hwpdocument_insertFootnote: (a: number, b: number, c: number, d: number) => [number, number, number, number];
160
159
  export const hwpdocument_insertPageBreak: (a: number, b: number, c: number, d: number) => [number, number, number, number];
160
+ export const hwpdocument_insertParagraph: (a: number, b: number, c: number) => [number, number, number, number];
161
161
  export const hwpdocument_insertPicture: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number) => [number, number, number, number];
162
162
  export const hwpdocument_insertTableColumn: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number, number];
163
163
  export const hwpdocument_insertTableRow: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number, number];
@@ -194,9 +194,12 @@ export const hwpdocument_removeFieldAtInCell: (a: number, b: number, c: number,
194
194
  export const hwpdocument_renameBookmark: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number, number];
195
195
  export const hwpdocument_renderEquationPreview: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
196
196
  export const hwpdocument_renderPageCanvas: (a: number, b: number) => [number, number, number];
197
+ export const hwpdocument_renderPageCanvasLegacy: (a: number, b: number) => [number, number, number];
197
198
  export const hwpdocument_renderPageHtml: (a: number, b: number) => [number, number, number, number];
198
199
  export const hwpdocument_renderPageSvg: (a: number, b: number) => [number, number, number, number];
199
200
  export const hwpdocument_renderPageToCanvas: (a: number, b: number, c: any, d: number) => [number, number];
201
+ export const hwpdocument_renderPageToCanvasFiltered: (a: number, b: number, c: any, d: number, e: number, f: number) => [number, number];
202
+ export const hwpdocument_renderPageToCanvasLegacy: (a: number, b: number, c: any, d: number) => [number, number];
200
203
  export const hwpdocument_replaceAll: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number, number];
201
204
  export const hwpdocument_replaceOne: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number, number];
202
205
  export const hwpdocument_replaceText: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number, number, number];
@@ -254,6 +257,8 @@ export const hwpviewer_setZoom: (a: number, b: number) => void;
254
257
  export const hwpviewer_updateViewport: (a: number, b: number, c: number, d: number, e: number) => void;
255
258
  export const hwpviewer_visiblePages: (a: number) => [number, number];
256
259
  export const hwpviewer_pageCount: (a: number) => number;
260
+ export const version: () => [number, number];
261
+ export const init_panic_hook: () => void;
257
262
  export const __wbindgen_exn_store: (a: number) => void;
258
263
  export const __externref_table_alloc: () => number;
259
264
  export const __wbindgen_externrefs: WebAssembly.Table;