print-designer 1.0.9 → 1.0.12
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 +27 -30
- package/dist/{index-Dj2CdLWM.mjs → index-Cs6dceqb.mjs} +7481 -7493
- package/dist/{index-Dj2CdLWM.mjs.map → index-Cs6dceqb.mjs.map} +1 -1
- package/dist/{index.es-2f8Iz56U.mjs → index.es-BOBytIUX.mjs} +2 -2
- package/dist/{index.es-2f8Iz56U.mjs.map → index.es-BOBytIUX.mjs.map} +1 -1
- package/dist/print-designer.es.js +1 -1
- package/dist/print-designer.umd.js +68 -68
- package/dist/print-designer.umd.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -90,17 +90,14 @@ import {
|
|
|
90
90
|
openPrintWindow
|
|
91
91
|
} from 'print-designer';
|
|
92
92
|
|
|
93
|
-
//
|
|
93
|
+
// 从存储加载设计数据
|
|
94
94
|
const savedDesign = JSON.parse(localStorage.getItem('design') || '{}');
|
|
95
|
-
const template = savedDesign.bands;
|
|
96
|
-
const pageSettings = savedDesign.pageSettings;
|
|
97
95
|
|
|
98
|
-
//
|
|
96
|
+
// 打印配置(统一的 JSON 结构)
|
|
99
97
|
const printOptions = {
|
|
100
|
-
|
|
101
|
-
data: previewData,
|
|
102
|
-
dataFields,
|
|
103
|
-
pageSettings, // 页面设置(可选)
|
|
98
|
+
design: savedDesign, // 设计数据(包含 bands, pageSettings)
|
|
99
|
+
data: previewData, // 业务数据
|
|
100
|
+
dataFields, // 数据字段定义(必填)
|
|
104
101
|
};
|
|
105
102
|
|
|
106
103
|
// 1. 渲染为 HTML 字符串
|
|
@@ -159,12 +156,8 @@ import { PrintPreview } from 'print-designer';
|
|
|
159
156
|
| data | `Record<string, any>` | ✓ | - | 预览数据 |
|
|
160
157
|
| dataFields | `DataField[]` | ✓ | - | 数据字段定义 |
|
|
161
158
|
| onClose | `() => void` | ✓ | - | 关闭回调 |
|
|
162
|
-
|
|
|
163
|
-
| pageHeight | `number` | | `1123` | 页面高度(px) |
|
|
164
|
-
| pageMargins | `{ top, bottom, left, right }` | | `{ top: 40, bottom: 40, left: 40, right: 40 }` | 页边距(px) |
|
|
159
|
+
| pageSettings | `PageSettings` | ✓ | - | 页面设置(纸张尺寸、边距、方向等) |
|
|
165
160
|
| showPageNumbers | `boolean` | | `true` | 是否显示页码 |
|
|
166
|
-
| paperWidthMm | `number` | | `210` | 纸张宽度(mm),用于PDF导出 |
|
|
167
|
-
| paperHeightMm | `number` | | `297` | 纸张高度(mm),用于PDF导出 |
|
|
168
161
|
|
|
169
162
|
### 打印输出函数
|
|
170
163
|
|
|
@@ -176,13 +169,9 @@ import { PrintPreview } from 'print-designer';
|
|
|
176
169
|
import { renderToHtml } from 'print-designer';
|
|
177
170
|
|
|
178
171
|
const result = renderToHtml({
|
|
179
|
-
|
|
172
|
+
design: DesignData, // 设计数据(bands, pageSettings)
|
|
180
173
|
data: object, // 业务数据
|
|
181
|
-
dataFields
|
|
182
|
-
pageSettings?: PageSettings, // 页面设置
|
|
183
|
-
pageWidth?: number, // 页面宽度(px),默认 794
|
|
184
|
-
pageHeight?: number, // 页面高度(px),默认 1123
|
|
185
|
-
pageMargins?: { top, bottom, left, right }, // 页边距(px)
|
|
174
|
+
dataFields: DataField[], // 数据字段定义(必填)
|
|
186
175
|
});
|
|
187
176
|
|
|
188
177
|
// 返回结果
|
|
@@ -202,10 +191,9 @@ console.log(result.paperHeightMm);// 纸张高度(mm)
|
|
|
202
191
|
import { exportToPdf } from 'print-designer';
|
|
203
192
|
|
|
204
193
|
await exportToPdf({
|
|
205
|
-
|
|
194
|
+
design: DesignData, // 设计数据
|
|
206
195
|
data: object, // 业务数据
|
|
207
|
-
dataFields
|
|
208
|
-
pageSettings?: PageSettings, // 页面设置
|
|
196
|
+
dataFields: DataField[], // 数据字段定义(必填)
|
|
209
197
|
fileName?: string, // 文件名(不含扩展名),默认 '报表_日期'
|
|
210
198
|
download?: boolean, // 是否直接下载,默认 true
|
|
211
199
|
scale?: number, // 图片缩放比例,默认 2
|
|
@@ -223,10 +211,9 @@ const pdfBlob = await exportToPdf({ ...options, download: false });
|
|
|
223
211
|
import { getPrintableHtml } from 'print-designer';
|
|
224
212
|
|
|
225
213
|
const html = getPrintableHtml({
|
|
226
|
-
|
|
227
|
-
data: object,
|
|
228
|
-
dataFields
|
|
229
|
-
pageSettings?: PageSettings,
|
|
214
|
+
design: DesignData, // 设计数据
|
|
215
|
+
data: object, // 业务数据
|
|
216
|
+
dataFields: DataField[], // 数据字段定义(必填)
|
|
230
217
|
});
|
|
231
218
|
|
|
232
219
|
// 返回完整的 HTML 文档字符串(包含 DOCTYPE、打印样式等)
|
|
@@ -244,16 +231,26 @@ const html = getPrintableHtml({
|
|
|
244
231
|
import { openPrintWindow } from 'print-designer';
|
|
245
232
|
|
|
246
233
|
openPrintWindow({
|
|
247
|
-
|
|
248
|
-
data: object,
|
|
249
|
-
dataFields
|
|
250
|
-
pageSettings?: PageSettings,
|
|
234
|
+
design: DesignData, // 设计数据
|
|
235
|
+
data: object, // 业务数据
|
|
236
|
+
dataFields: DataField[], // 数据字段定义(必填)
|
|
251
237
|
});
|
|
252
238
|
// 会打开新窗口并自动调用 window.print()
|
|
253
239
|
```
|
|
254
240
|
|
|
255
241
|
## 类型定义
|
|
256
242
|
|
|
243
|
+
### DesignData
|
|
244
|
+
|
|
245
|
+
设计数据(统一的 JSON 结构)。
|
|
246
|
+
|
|
247
|
+
```typescript
|
|
248
|
+
interface DesignData {
|
|
249
|
+
bands?: Band[]; // 带区设计数据(可选,为空时使用默认带区)
|
|
250
|
+
pageSettings?: PageSettings; // 页面设置(可选,为空时使用默认 A4 设置)
|
|
251
|
+
}
|
|
252
|
+
```
|
|
253
|
+
|
|
257
254
|
### DataField
|
|
258
255
|
|
|
259
256
|
数据字段定义。
|