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 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
- template, // 设计模板(带区数据)
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
- | pageWidth | `number` | | `794` | 页面宽度(px) |
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
- template: Band[], // 设计模板(带区数据)
172
+ design: DesignData, // 设计数据(bands, pageSettings)
180
173
  data: object, // 业务数据
181
- dataFields?: DataField[],// 数据字段定义
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
- template: Band[], // 设计模板
194
+ design: DesignData, // 设计数据
206
195
  data: object, // 业务数据
207
- dataFields?: DataField[],// 数据字段定义
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
- template: Band[],
227
- data: object,
228
- dataFields?: DataField[],
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
- template: Band[],
248
- data: object,
249
- dataFields?: DataField[],
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
  数据字段定义。