watermark-js-nine 1.0.2 → 1.0.3

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 CHANGED
@@ -30,7 +30,7 @@ yarn add watermark-js-nine
30
30
  ### 引入 Import
31
31
 
32
32
  ```typescript
33
- import NewWatermark, { WatermarkConfig } from 'watermark-js-nine';
33
+ import NewWatermark, { WatermarkConfig } from "watermark-js-nine";
34
34
  ```
35
35
 
36
36
  ### 基本使用 Basic Usage
@@ -45,7 +45,7 @@ const config: WatermarkConfig = {
45
45
  fillStyle: "rgba(200, 200, 200, 0.5)",
46
46
  rotate: -45,
47
47
  horizontal: 20, // mm
48
- vertical: 20 // mm
48
+ vertical: 20, // mm
49
49
  };
50
50
 
51
51
  // 初始化 / Initialize
@@ -68,17 +68,17 @@ const configs: WatermarkConfig[] = [
68
68
  tilling: true,
69
69
  value: "内部资料",
70
70
  rotate: -45,
71
- fillStyle: "rgba(0,0,0,0.1)"
71
+ fillStyle: "rgba(0,0,0,0.1)",
72
72
  },
73
73
  {
74
74
  type: "image",
75
75
  tilling: false,
76
76
  place: "topRight",
77
77
  image: {
78
- data: "base64-string...",
79
- size: [20, 20] // mm
80
- }
81
- }
78
+ // data: "base64-string...", // 图片base64数据 不传递则使用默认图片,默认图片为https://cdn.jsdelivr.net/gh/zhangpanfei/static@demo/img/test.jpg
79
+ size: [20, 20], // mm
80
+ },
81
+ },
82
82
  ];
83
83
 
84
84
  const wm = new NewWatermark("app", configs);
@@ -87,32 +87,32 @@ wm.init();
87
87
 
88
88
  ## 配置选项 Configuration (WatermarkConfig)
89
89
 
90
- | 属性 Property | 类型 Type | 说明 Description | 默认值 Default |
91
- |--------------|-----------|------------------|---------------|
92
- | `type` | `"text" \| "image"` | 水印类型 / Watermark type | `"text"` |
93
- | `tilling` | `boolean` | 是否平铺 / Whether to tile | `true` |
94
- | `rotate` | `number` | 旋转角度 / Rotation angle | `0` |
95
- | `offset` | `[number, number]` | 偏移量 [x, y] (mm) / Offset | `[0, 0]` |
96
- | `horizontal` | `number` | 横向间距 (mm) / Horizontal spacing | `0` |
97
- | `vertical` | `number` | 纵向间距 (mm) / Vertical spacing | `0` |
98
- | `place` | `PlaceType` | 单个水印位置 / Single watermark position | `"middleCenter"` |
90
+ | 属性 Property | 类型 Type | 说明 Description | 默认值 Default |
91
+ | ------------- | ------------------- | ---------------------------------------- | ---------------- |
92
+ | `type` | `"text" \| "image"` | 水印类型 / Watermark type | `"text"` |
93
+ | `tilling` | `boolean` | 是否平铺 / Whether to tile | `true` |
94
+ | `rotate` | `number` | 旋转角度 / Rotation angle | `0` |
95
+ | `offset` | `[number, number]` | 偏移量 [x, y] (mm) / Offset | `[0, 0]` |
96
+ | `horizontal` | `number` | 横向间距 (mm) / Horizontal spacing | `0` |
97
+ | `vertical` | `number` | 纵向间距 (mm) / Vertical spacing | `0` |
98
+ | `place` | `PlaceType` | 单个水印位置 / Single watermark position | `"middleCenter"` |
99
99
 
100
100
  ### 文字水印配置 Text Configuration
101
101
 
102
- | 属性 Property | 类型 Type | 说明 Description |
103
- |--------------|-----------|------------------|
104
- | `value` | `string` | 水印文本(支持 `\n` 换行) / Watermark text |
105
- | `font` | `string` | 字体样式 (e.g. "20pt SimSun") / Font style |
106
- | `fillStyle` | `string` | 填充颜色 / Fill color |
102
+ | 属性 Property | 类型 Type | 说明 Description |
103
+ | ------------- | --------- | ------------------------------------------- |
104
+ | `value` | `string` | 水印文本(支持 `\n` 换行) / Watermark text |
105
+ | `font` | `string` | 字体样式 (e.g. "20pt SimSun") / Font style |
106
+ | `fillStyle` | `string` | 填充颜色 / Fill color |
107
107
 
108
108
  ### 图片水印配置 Image Configuration (`image` object)
109
109
 
110
- | 属性 Property | 类型 Type | 说明 Description |
111
- |--------------|-----------|------------------|
112
- | `type` | `string` | 图片类型 (png/jpg) / Image type |
113
- | `data` | `string` | 图片 Base64 数据 / Image Base64 data |
114
- | `size` | `[number, number]` | 图片大小 [width, height] (mm) / Image size |
115
- | `opacity` | `number` | 不透明度 (0-100) / Opacity |
110
+ | 属性 Property | 类型 Type | 说明 Description |
111
+ | ------------- | ------------------ | ------------------------------------------ |
112
+ | `type` | `string` | 图片类型 (png/jpg) / Image type |
113
+ | `data` | `string` | 图片 Base64 数据 / Image Base64 data |
114
+ | `size` | `[number, number]` | 图片大小 [width, height] (mm) / Image size |
115
+ | `opacity` | `number` | 不透明度 (0-100) / Opacity |
116
116
 
117
117
  ### 位置类型 PlaceType
118
118
 
@@ -129,8 +129,6 @@ Supported positions for single watermark:
129
129
 
130
130
  - `elementId`: 目标 DOM 元素的 ID。
131
131
  - `config`: 水印配置对象或数组。
132
- - `isPrint`: 是否为打印模式(影响 DPI 计算)。
133
- - `zoom`: 缩放比例。
134
132
 
135
133
  ### `init(): Promise<void>`
136
134
 
package/dist/waterMark.js CHANGED
@@ -899,4 +899,3 @@ export default class NewWatermark {
899
899
  }
900
900
  }
901
901
  }
902
- //# sourceMappingURL=waterMark.js.map
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "watermark-js-nine",
3
- "version": "1.0.2",
3
+ "version": "1.0.3",
4
4
  "description": "A powerful web watermark component supporting text and image watermarks with tiling",
5
5
  "main": "dist/waterMark.js",
6
6
  "module": "dist/waterMark.js",
7
- "types": "dist/waterMark.d.ts",
7
+ "types": "types/waterMark.d.ts",
8
8
  "scripts": {
9
9
  "build": "tsc",
10
10
  "prepublishOnly": "npm run build"
@@ -25,13 +25,14 @@
25
25
  "license": "MIT",
26
26
  "files": [
27
27
  "dist",
28
+ "types",
28
29
  "README.md"
29
30
  ],
30
31
  "repository": {
31
32
  "type": "git",
32
- "url": "git+https://github.com/h_tudou/test.git"
33
+ "url": "git+https://github.com/h_tudou/watermark-js-nine.git"
33
34
  },
34
35
  "bugs": {
35
- "url": "https://github.com/h_tudou/test/issues"
36
+ "url": "https://github.com/h_tudou/watermark-js-nine/issues"
36
37
  }
37
- }
38
+ }
@@ -92,4 +92,3 @@ export default class NewWatermark {
92
92
  destroy(): void;
93
93
  }
94
94
  export {};
95
- //# sourceMappingURL=waterMark.d.ts.map
package/dist/index.d.ts DELETED
@@ -1,50 +0,0 @@
1
- /**
2
- * Options for configuring the SvgDraggableComponent
3
- */
4
- export interface SvgDraggableComponentOptions {
5
- /** Width of the SVG canvas (default: 800) */
6
- width?: number;
7
- /** Height of the SVG canvas (default: 600) */
8
- height?: number;
9
- /** X position of the rectangle (default: 10) */
10
- rectX?: number;
11
- /** Y position of the rectangle (default: 10) */
12
- rectY?: number;
13
- /** Width of the rectangle (default: 200) */
14
- rectWidth?: number;
15
- /** Height of the rectangle (default: 100) */
16
- rectHeight?: number;
17
- /** Fill color of the rectangle (default: 'yellow') */
18
- rectFill?: string;
19
- /** Stroke color of the rectangle (default: 'black') */
20
- rectStroke?: string;
21
- /** X position of the component group (default: 100) */
22
- compX?: number;
23
- /** Y position of the component group (default: 100) */
24
- compY?: number;
25
- /** Whether to show the border (default: true) */
26
- showBorder?: boolean;
27
- }
28
-
29
- /**
30
- * A lightweight SVG component with drag and resize functionality
31
- */
32
- export default class SvgDraggableComponent {
33
- /**
34
- * Create a new SvgDraggableComponent instance
35
- * @param options - Configuration options
36
- */
37
- constructor(options?: SvgDraggableComponentOptions);
38
-
39
- /**
40
- * Mount the component to a container element
41
- * @param container - DOM element or CSS selector string
42
- * @throws Error if container is not found
43
- */
44
- mount(container: HTMLElement | string): void;
45
-
46
- /**
47
- * Destroy the component and cleanup event listeners
48
- */
49
- destroy(): void;
50
- }
package/dist/index.js DELETED
@@ -1,279 +0,0 @@
1
- /**
2
- * SvgDraggableComponent - A lightweight SVG component with drag and resize functionality
3
- */
4
- class SvgDraggableComponent {
5
- constructor(options = {}) {
6
- this.options = {
7
- width: options.width || 800,
8
- height: options.height || 600,
9
- rectX: options.rectX || 10,
10
- rectY: options.rectY || 10,
11
- rectWidth: options.rectWidth || 200,
12
- rectHeight: options.rectHeight || 100,
13
- rectFill: options.rectFill || 'yellow',
14
- rectStroke: options.rectStroke || 'black',
15
- compX: options.compX || 100,
16
- compY: options.compY || 100,
17
- showBorder: options.showBorder !== undefined ? options.showBorder : true
18
- };
19
-
20
- this.elements = {};
21
- this.state = {
22
- startX: 0,
23
- startY: 0,
24
- oldX: 0,
25
- oldY: 0,
26
- oldW: 0,
27
- oldH: 0,
28
- pressed: false,
29
- task: 0
30
- };
31
-
32
- this.container = null;
33
- }
34
-
35
- /**
36
- * Create SVG elements
37
- */
38
- createSvg() {
39
- const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
40
- svg.setAttribute('width', this.options.width);
41
- svg.setAttribute('height', this.options.height);
42
-
43
- if (this.options.showBorder) {
44
- svg.style.border = '1px solid red';
45
- }
46
-
47
- // Create component group
48
- const comp = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
49
- comp.setAttribute('x', this.options.compX);
50
- comp.setAttribute('y', this.options.compY);
51
- comp.id = 'comp';
52
-
53
- // Create rectangle
54
- const rect = document.createElementNS('http://www.w3.org/2000/svg', 'rect');
55
- rect.setAttribute('x', this.options.rectX);
56
- rect.setAttribute('y', this.options.rectY);
57
- rect.setAttribute('width', this.options.rectWidth);
58
- rect.setAttribute('height', this.options.rectHeight);
59
- rect.setAttribute('stroke', this.options.rectStroke);
60
- rect.setAttribute('fill', this.options.rectFill);
61
- rect.id = 'rect';
62
-
63
- // Create corner circles
64
- const clt = this.createCorner('clt', this.options.rectX, this.options.rectY);
65
- const crt = this.createCorner('crt', this.options.rectX + this.options.rectWidth, this.options.rectY);
66
- const clb = this.createCorner('clb', this.options.rectX, this.options.rectY + this.options.rectHeight);
67
- const crb = this.createCorner('crb', this.options.rectX + this.options.rectWidth, this.options.rectY + this.options.rectHeight);
68
-
69
- // Append elements
70
- comp.appendChild(rect);
71
- comp.appendChild(clt);
72
- comp.appendChild(crt);
73
- comp.appendChild(clb);
74
- comp.appendChild(crb);
75
- svg.appendChild(comp);
76
-
77
- // Store references
78
- this.elements = {
79
- svg,
80
- comp,
81
- rect,
82
- clt,
83
- crt,
84
- clb,
85
- crb
86
- };
87
-
88
- return svg;
89
- }
90
-
91
- /**
92
- * Create a corner circle
93
- */
94
- createCorner(id, cx, cy) {
95
- const circle = document.createElementNS('http://www.w3.org/2000/svg', 'circle');
96
- circle.setAttribute('id', id);
97
- circle.setAttribute('cx', cx);
98
- circle.setAttribute('cy', cy);
99
- circle.setAttribute('r', 10);
100
- circle.setAttribute('stroke', 'none');
101
- circle.setAttribute('fill', 'red');
102
- circle.setAttribute('fill-opacity', 0.5);
103
- return circle;
104
- }
105
-
106
- /**
107
- * Setup drag functionality for the rectangle
108
- */
109
- setupRectDrag() {
110
- const { rect, comp } = this.elements;
111
-
112
- const handleMouseDown = (e) => {
113
- this.state.pressed = true;
114
- this.state.startX = e.offsetX;
115
- this.state.startY = e.offsetY;
116
- this.state.oldX = Number.parseFloat(comp.getAttribute('x'));
117
- this.state.oldY = Number.parseFloat(comp.getAttribute('y'));
118
- };
119
-
120
- const handleMouseMove = (e) => {
121
- if (!this.state.pressed) return;
122
-
123
- const dx = e.offsetX - this.state.startX;
124
- const dy = e.offsetY - this.state.startY;
125
-
126
- if (this.state.task !== 0) {
127
- cancelAnimationFrame(this.state.task);
128
- }
129
-
130
- this.state.task = requestAnimationFrame(() => {
131
- comp.setAttribute('x', this.state.oldX + dx);
132
- comp.setAttribute('y', this.state.oldY + dy);
133
- });
134
- };
135
-
136
- const handleMouseUp = () => {
137
- this.state.pressed = false;
138
- };
139
-
140
- const handleMouseOver = () => {
141
- rect.style.cursor = 'move';
142
- };
143
-
144
- rect.addEventListener('mousedown', handleMouseDown);
145
- rect.addEventListener('mousemove', handleMouseMove);
146
- rect.addEventListener('mouseup', handleMouseUp);
147
- rect.addEventListener('mouseover', handleMouseOver);
148
-
149
- // Store handlers for cleanup
150
- this.handlers = this.handlers || {};
151
- this.handlers.rect = {
152
- mousedown: handleMouseDown,
153
- mousemove: handleMouseMove,
154
- mouseup: handleMouseUp,
155
- mouseover: handleMouseOver
156
- };
157
- }
158
-
159
- /**
160
- * Setup resize functionality for the corner
161
- */
162
- setupCornerResize() {
163
- const { crb } = this.elements;
164
-
165
- const handleMouseDown = (e) => {
166
- this.state.pressed = true;
167
- this.state.startX = e.offsetX;
168
- this.state.startY = e.offsetY;
169
- this.state.oldX = Number.parseFloat(crb.getAttribute('cx'));
170
- this.state.oldY = Number.parseFloat(crb.getAttribute('cy'));
171
- };
172
-
173
- const handleMouseMove = (e) => {
174
- if (!this.state.pressed) return;
175
-
176
- const dx = e.offsetX - this.state.startX;
177
- const dy = e.offsetY - this.state.startY;
178
-
179
- if (this.state.task !== 0) {
180
- cancelAnimationFrame(this.state.task);
181
- }
182
-
183
- crb.setAttribute('cx', this.state.oldX + dx);
184
- crb.setAttribute('cy', this.state.oldY + dy);
185
- };
186
-
187
- const handleMouseUp = () => {
188
- this.state.pressed = false;
189
- };
190
-
191
- const handleMouseOver = () => {
192
- crb.style.cursor = 'nwse-resize';
193
- };
194
-
195
- const handleMouseLeave = () => {
196
- // Handle mouse leave if needed
197
- };
198
-
199
- crb.addEventListener('mousedown', handleMouseDown);
200
- crb.addEventListener('mousemove', handleMouseMove);
201
- crb.addEventListener('mouseup', handleMouseUp);
202
- crb.addEventListener('mouseover', handleMouseOver);
203
- crb.addEventListener('mouseleave', handleMouseLeave);
204
-
205
- // Store handlers for cleanup
206
- this.handlers = this.handlers || {};
207
- this.handlers.crb = {
208
- mousedown: handleMouseDown,
209
- mousemove: handleMouseMove,
210
- mouseup: handleMouseUp,
211
- mouseover: handleMouseOver,
212
- mouseleave: handleMouseLeave
213
- };
214
- }
215
-
216
- /**
217
- * Mount the component to a container
218
- * @param {HTMLElement|string} container - DOM element or selector string
219
- */
220
- mount(container) {
221
- if (typeof container === 'string') {
222
- this.container = document.querySelector(container);
223
- } else {
224
- this.container = container;
225
- }
226
-
227
- if (!this.container) {
228
- throw new Error('Container not found');
229
- }
230
-
231
- const svg = this.createSvg();
232
- this.container.appendChild(svg);
233
-
234
- this.setupRectDrag();
235
- this.setupCornerResize();
236
- }
237
-
238
- /**
239
- * Destroy the component and cleanup
240
- */
241
- destroy() {
242
- if (this.elements.svg && this.container) {
243
- this.container.removeChild(this.elements.svg);
244
- }
245
-
246
- // Cleanup event listeners
247
- if (this.handlers) {
248
- Object.keys(this.handlers).forEach(elementKey => {
249
- const element = this.elements[elementKey];
250
- const handlers = this.handlers[elementKey];
251
- Object.keys(handlers).forEach(eventName => {
252
- element.removeEventListener(eventName, handlers[eventName]);
253
- });
254
- });
255
- }
256
-
257
- this.elements = {};
258
- this.handlers = {};
259
- this.container = null;
260
- }
261
- }
262
-
263
- // Export for different module systems
264
- if (typeof module !== 'undefined' && module.exports) {
265
- module.exports = SvgDraggableComponent;
266
- }
267
-
268
- if (typeof define === 'function' && define.amd) {
269
- define([], function() {
270
- return SvgDraggableComponent;
271
- });
272
- }
273
-
274
- if (typeof window !== 'undefined') {
275
- window.SvgDraggableComponent = SvgDraggableComponent;
276
- }
277
-
278
- export default SvgDraggableComponent;
279
-
@@ -1 +0,0 @@
1
- {"version":3,"file":"waterMark.d.ts","sourceRoot":"","sources":["../src/waterMark.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IAEjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,KAAK,CAAC,EAAE;QACN,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACxB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IAEF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,YAAY,CAAC,EAAE,aAAa,CAAC;CAC9B;AAED,KAAK,SAAS,GACV,SAAS,GACT,WAAW,GACX,UAAU,GACV,YAAY,GACZ,cAAc,GACd,aAAa,GACb,YAAY,GACZ,cAAc,GACd,aAAa,CAAC;AAmMlB,MAAM,CAAC,OAAO,OAAO,YAAY;IAC/B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,MAAM,CAA2C;IACzD,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,QAAQ,CAAwB;IAExC;;;;;;OAMG;gBAED,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,eAAe,GAAG,KAAK,CAAC,eAAe,CAAC,EAChD,OAAO,UAAQ,EACf,IAAI,SAAI;IAQV,OAAO,CAAC,cAAc;IAKtB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA4B1B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAsC3B,OAAO,CAAC,aAAa;IAerB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAgC1B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA6BxB;;OAEG;YACW,sBAAsB;IAuCpC;;OAEG;YACW,2BAA2B;IA6CzC;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAkClC;;OAEG;YACW,qBAAqB;IAiBnC;;OAEG;YACW,0BAA0B;IAiCxC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IA4G9B;;OAEG;IACH,OAAO,CAAC,yBAAyB;IA+BjC;;OAEG;IACH,OAAO,CAAC,qBAAqB;YAsIf,oBAAoB;YAUpB,cAAc;IAiL5B,OAAO,CAAC,WAAW;IA0DnB;;OAEG;IACH,OAAO,IAAI,IAAI;CAMhB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"waterMark.js","sourceRoot":"","sources":["../src/waterMark.ts"],"names":[],"mappings":"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"}