@rhwp/core 0.7.9 → 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.9",
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
@@ -1020,6 +1020,18 @@ export class HwpDocument {
1020
1020
  * scale이 0 이하이면 1.0으로 처리한다 (하위호환).
1021
1021
  */
1022
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;
1023
1035
  /**
1024
1036
  * 특정 페이지를 기존 PageRenderTree 경로로 Canvas 2D에 직접 렌더링한다.
1025
1037
  */
@@ -1526,6 +1538,7 @@ export interface InitOutput {
1526
1538
  readonly hwpdocument_renderPageHtml: (a: number, b: number) => [number, number, number, number];
1527
1539
  readonly hwpdocument_renderPageSvg: (a: number, b: number) => [number, number, number, number];
1528
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];
1529
1542
  readonly hwpdocument_renderPageToCanvasLegacy: (a: number, b: number, c: any, d: number) => [number, number];
1530
1543
  readonly hwpdocument_replaceAll: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number, number];
1531
1544
  readonly hwpdocument_replaceOne: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number, number];
package/rhwp.js CHANGED
@@ -4625,6 +4625,29 @@ export class HwpDocument {
4625
4625
  throw takeFromExternrefTable0(ret[0]);
4626
4626
  }
4627
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
+ }
4628
4651
  /**
4629
4652
  * 특정 페이지를 기존 PageRenderTree 경로로 Canvas 2D에 직접 렌더링한다.
4630
4653
  * @param {number} page_num
@@ -6020,7 +6043,7 @@ function __wbg_get_imports() {
6020
6043
  __wbg_lineTo_fe5522fbbf79a59d: function(arg0, arg1, arg2) {
6021
6044
  arg0.lineTo(arg1, arg2);
6022
6045
  },
6023
- __wbg_measureTextWidth_b2ff54f2bcc245dd: function(arg0, arg1, arg2, arg3) {
6046
+ __wbg_measureTextWidth_8348d9e9c7b34407: function(arg0, arg1, arg2, arg3) {
6024
6047
  const ret = globalThis.measureTextWidth(getStringFromWasm0(arg0, arg1), getStringFromWasm0(arg2, arg3));
6025
6048
  return ret;
6026
6049
  },
@@ -6077,6 +6100,9 @@ function __wbg_get_imports() {
6077
6100
  __wbg_set_fillStyle_a37bbe1a6cf22936: function(arg0, arg1) {
6078
6101
  arg0.fillStyle = arg1;
6079
6102
  },
6103
+ __wbg_set_filter_73c9d4b507a71b7f: function(arg0, arg1, arg2) {
6104
+ arg0.filter = getStringFromWasm0(arg1, arg2);
6105
+ },
6080
6106
  __wbg_set_font_5b1b8c76449f5864: function(arg0, arg1, arg2) {
6081
6107
  arg0.font = getStringFromWasm0(arg1, arg2);
6082
6108
  },
package/rhwp_bg.wasm CHANGED
Binary file
package/rhwp_bg.wasm.d.ts CHANGED
@@ -198,6 +198,7 @@ export const hwpdocument_renderPageCanvasLegacy: (a: number, b: number) => [numb
198
198
  export const hwpdocument_renderPageHtml: (a: number, b: number) => [number, number, number, number];
199
199
  export const hwpdocument_renderPageSvg: (a: number, b: number) => [number, number, number, number];
200
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];
201
202
  export const hwpdocument_renderPageToCanvasLegacy: (a: number, b: number, c: any, d: number) => [number, number];
202
203
  export const hwpdocument_replaceAll: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number, number];
203
204
  export const hwpdocument_replaceOne: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number, number];