@cj-tech-master/excelts 6.2.0 → 7.0.0
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 +45 -17
- package/README_zh.md +43 -15
- package/dist/browser/index.browser.d.ts +1 -1
- package/dist/browser/index.browser.js +1 -1
- package/dist/browser/index.d.ts +2 -2
- package/dist/browser/index.js +1 -1
- package/dist/browser/modules/excel/stream/workbook-writer.browser.d.ts +0 -2
- package/dist/browser/modules/excel/stream/workbook-writer.d.ts +2 -2
- package/dist/browser/modules/excel/types.d.ts +0 -2
- package/dist/browser/modules/pdf/excel-bridge.d.ts +29 -0
- package/dist/browser/modules/pdf/excel-bridge.js +423 -0
- package/dist/browser/modules/pdf/index.d.ts +22 -24
- package/dist/browser/modules/pdf/index.js +22 -25
- package/dist/browser/modules/pdf/pdf.d.ts +121 -0
- package/dist/browser/modules/pdf/pdf.js +255 -0
- package/dist/browser/modules/pdf/render/layout-engine.d.ts +10 -8
- package/dist/browser/modules/pdf/render/layout-engine.js +115 -209
- package/dist/browser/modules/pdf/render/pdf-exporter.d.ts +9 -62
- package/dist/browser/modules/pdf/render/pdf-exporter.js +38 -78
- package/dist/browser/modules/pdf/render/style-converter.d.ts +20 -18
- package/dist/browser/modules/pdf/render/style-converter.js +24 -23
- package/dist/browser/modules/pdf/types.d.ts +193 -11
- package/dist/browser/modules/pdf/types.js +22 -1
- package/dist/cjs/index.js +3 -3
- package/dist/cjs/modules/pdf/excel-bridge.js +426 -0
- package/dist/cjs/modules/pdf/index.js +25 -28
- package/dist/cjs/modules/pdf/pdf.js +258 -0
- package/dist/cjs/modules/pdf/render/layout-engine.js +116 -210
- package/dist/cjs/modules/pdf/render/pdf-exporter.js +37 -79
- package/dist/cjs/modules/pdf/render/style-converter.js +24 -23
- package/dist/cjs/modules/pdf/types.js +23 -2
- package/dist/esm/index.browser.js +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/modules/pdf/excel-bridge.js +423 -0
- package/dist/esm/modules/pdf/index.js +22 -25
- package/dist/esm/modules/pdf/pdf.js +255 -0
- package/dist/esm/modules/pdf/render/layout-engine.js +115 -209
- package/dist/esm/modules/pdf/render/pdf-exporter.js +38 -78
- package/dist/esm/modules/pdf/render/style-converter.js +24 -23
- package/dist/esm/modules/pdf/types.js +22 -1
- package/dist/iife/excelts.iife.js +728 -251
- package/dist/iife/excelts.iife.js.map +1 -1
- package/dist/iife/excelts.iife.min.js +34 -34
- package/dist/types/index.browser.d.ts +1 -1
- package/dist/types/index.d.ts +2 -2
- package/dist/types/modules/excel/stream/workbook-writer.browser.d.ts +0 -2
- package/dist/types/modules/excel/stream/workbook-writer.d.ts +2 -2
- package/dist/types/modules/excel/types.d.ts +0 -2
- package/dist/types/modules/pdf/excel-bridge.d.ts +29 -0
- package/dist/types/modules/pdf/index.d.ts +22 -24
- package/dist/types/modules/pdf/pdf.d.ts +121 -0
- package/dist/types/modules/pdf/render/layout-engine.d.ts +10 -8
- package/dist/types/modules/pdf/render/pdf-exporter.d.ts +9 -62
- package/dist/types/modules/pdf/render/style-converter.d.ts +20 -18
- package/dist/types/modules/pdf/types.d.ts +193 -11
- package/package.json +1 -1
|
@@ -1,7 +1,189 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Type definitions for the PDF module.
|
|
3
|
-
* Covers export options, page layout, and internal rendering models.
|
|
3
|
+
* Covers input data models, export options, page layout, and internal rendering models.
|
|
4
|
+
*
|
|
5
|
+
* The input data models (PdfWorkbook, PdfSheetData, etc.) are fully independent of
|
|
6
|
+
* the Excel module, allowing the PDF engine to be used standalone.
|
|
4
7
|
*/
|
|
8
|
+
/**
|
|
9
|
+
* Cell value type discriminator for the PDF engine.
|
|
10
|
+
*/
|
|
11
|
+
export declare const PdfCellType: {
|
|
12
|
+
readonly Empty: 0;
|
|
13
|
+
readonly String: 1;
|
|
14
|
+
readonly Number: 2;
|
|
15
|
+
readonly Boolean: 3;
|
|
16
|
+
readonly Date: 4;
|
|
17
|
+
readonly RichText: 5;
|
|
18
|
+
readonly Error: 6;
|
|
19
|
+
readonly Formula: 7;
|
|
20
|
+
readonly Hyperlink: 8;
|
|
21
|
+
readonly Merge: 9;
|
|
22
|
+
};
|
|
23
|
+
export type PdfCellTypeValue = (typeof PdfCellType)[keyof typeof PdfCellType];
|
|
24
|
+
/** Color data used across the PDF input model. */
|
|
25
|
+
export interface PdfColorData {
|
|
26
|
+
argb?: string;
|
|
27
|
+
theme?: number;
|
|
28
|
+
tint?: number;
|
|
29
|
+
}
|
|
30
|
+
/** Font style in the PDF input model. */
|
|
31
|
+
export interface PdfFontStyle {
|
|
32
|
+
name?: string;
|
|
33
|
+
size?: number;
|
|
34
|
+
bold?: boolean;
|
|
35
|
+
italic?: boolean;
|
|
36
|
+
strike?: boolean;
|
|
37
|
+
underline?: boolean | string;
|
|
38
|
+
color?: PdfColorData;
|
|
39
|
+
}
|
|
40
|
+
/** Fill data in the PDF input model. */
|
|
41
|
+
export interface PdfFillData {
|
|
42
|
+
type: "pattern" | "gradient";
|
|
43
|
+
pattern?: string;
|
|
44
|
+
fgColor?: PdfColorData;
|
|
45
|
+
stops?: Array<{
|
|
46
|
+
position?: number;
|
|
47
|
+
color: PdfColorData;
|
|
48
|
+
}>;
|
|
49
|
+
}
|
|
50
|
+
/** A single border edge in the PDF input model. */
|
|
51
|
+
export interface PdfBorderSideData {
|
|
52
|
+
style?: string;
|
|
53
|
+
color?: PdfColorData;
|
|
54
|
+
}
|
|
55
|
+
/** Border data in the PDF input model. */
|
|
56
|
+
export interface PdfBordersData {
|
|
57
|
+
top?: Partial<PdfBorderSideData>;
|
|
58
|
+
right?: Partial<PdfBorderSideData>;
|
|
59
|
+
bottom?: Partial<PdfBorderSideData>;
|
|
60
|
+
left?: Partial<PdfBorderSideData>;
|
|
61
|
+
}
|
|
62
|
+
/** Alignment data in the PDF input model. */
|
|
63
|
+
export interface PdfAlignmentData {
|
|
64
|
+
horizontal?: string;
|
|
65
|
+
vertical?: string;
|
|
66
|
+
wrapText?: boolean;
|
|
67
|
+
indent?: number;
|
|
68
|
+
textRotation?: number;
|
|
69
|
+
}
|
|
70
|
+
/** Cell style in the PDF input model. */
|
|
71
|
+
export interface PdfCellStyle {
|
|
72
|
+
font?: Partial<PdfFontStyle>;
|
|
73
|
+
numFmt?: string | {
|
|
74
|
+
formatCode: string;
|
|
75
|
+
};
|
|
76
|
+
fill?: PdfFillData;
|
|
77
|
+
border?: Partial<PdfBordersData>;
|
|
78
|
+
alignment?: Partial<PdfAlignmentData>;
|
|
79
|
+
}
|
|
80
|
+
/** A single run of rich text. */
|
|
81
|
+
export interface PdfRichTextRunData {
|
|
82
|
+
text: string;
|
|
83
|
+
font?: Partial<PdfFontStyle>;
|
|
84
|
+
}
|
|
85
|
+
/** A cell in the PDF input model. */
|
|
86
|
+
export interface PdfCellData {
|
|
87
|
+
type: PdfCellTypeValue;
|
|
88
|
+
value: unknown;
|
|
89
|
+
/** Pre-computed display text */
|
|
90
|
+
text: string;
|
|
91
|
+
style?: Partial<PdfCellStyle>;
|
|
92
|
+
hyperlink?: string;
|
|
93
|
+
/** Formula result (for formula cells) */
|
|
94
|
+
result?: unknown;
|
|
95
|
+
/** Column number (1-based) */
|
|
96
|
+
col: number;
|
|
97
|
+
}
|
|
98
|
+
/** A row in the PDF input model. */
|
|
99
|
+
export interface PdfRowData {
|
|
100
|
+
hidden?: boolean;
|
|
101
|
+
height?: number;
|
|
102
|
+
/** Cells keyed by 1-based column number */
|
|
103
|
+
cells: Map<number, PdfCellData>;
|
|
104
|
+
}
|
|
105
|
+
/** A column in the PDF input model. */
|
|
106
|
+
export interface PdfColumnData {
|
|
107
|
+
hidden?: boolean;
|
|
108
|
+
width?: number;
|
|
109
|
+
}
|
|
110
|
+
/** Page setup configuration. */
|
|
111
|
+
export interface PdfPageSetupData {
|
|
112
|
+
orientation?: string;
|
|
113
|
+
paperSize?: number;
|
|
114
|
+
margins?: {
|
|
115
|
+
left: number;
|
|
116
|
+
right: number;
|
|
117
|
+
top: number;
|
|
118
|
+
bottom: number;
|
|
119
|
+
};
|
|
120
|
+
scale?: number;
|
|
121
|
+
printTitlesRow?: string;
|
|
122
|
+
showGridLines?: boolean;
|
|
123
|
+
printArea?: string;
|
|
124
|
+
}
|
|
125
|
+
/** An image embedded in a sheet. */
|
|
126
|
+
export interface PdfSheetImage {
|
|
127
|
+
data: Uint8Array;
|
|
128
|
+
format: "jpeg" | "png";
|
|
129
|
+
range: {
|
|
130
|
+
tl: {
|
|
131
|
+
col: number;
|
|
132
|
+
row: number;
|
|
133
|
+
nativeCol?: number;
|
|
134
|
+
nativeRow?: number;
|
|
135
|
+
nativeColOff?: number;
|
|
136
|
+
nativeRowOff?: number;
|
|
137
|
+
};
|
|
138
|
+
br?: {
|
|
139
|
+
col: number;
|
|
140
|
+
row: number;
|
|
141
|
+
nativeCol?: number;
|
|
142
|
+
nativeRow?: number;
|
|
143
|
+
nativeColOff?: number;
|
|
144
|
+
nativeRowOff?: number;
|
|
145
|
+
};
|
|
146
|
+
ext?: {
|
|
147
|
+
width: number;
|
|
148
|
+
height: number;
|
|
149
|
+
};
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
/** A single sheet in the PDF input model. */
|
|
153
|
+
export interface PdfSheetData {
|
|
154
|
+
name: string;
|
|
155
|
+
state?: "visible" | "hidden" | "veryHidden";
|
|
156
|
+
/** Data bounds (1-based) */
|
|
157
|
+
bounds: {
|
|
158
|
+
top: number;
|
|
159
|
+
left: number;
|
|
160
|
+
bottom: number;
|
|
161
|
+
right: number;
|
|
162
|
+
};
|
|
163
|
+
/** Columns keyed by 1-based column number */
|
|
164
|
+
columns: Map<number, PdfColumnData>;
|
|
165
|
+
/** Rows keyed by 1-based row number */
|
|
166
|
+
rows: Map<number, PdfRowData>;
|
|
167
|
+
/** Merge ranges in "A1:B2" format */
|
|
168
|
+
merges?: string[];
|
|
169
|
+
pageSetup?: PdfPageSetupData;
|
|
170
|
+
/** Row numbers where manual page breaks occur */
|
|
171
|
+
rowBreaks?: number[];
|
|
172
|
+
/** Column numbers where manual page breaks occur */
|
|
173
|
+
colBreaks?: number[];
|
|
174
|
+
/** Embedded images */
|
|
175
|
+
images?: PdfSheetImage[];
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* A workbook data structure for PDF generation.
|
|
179
|
+
* This is a plain data object — not tied to the Excel module.
|
|
180
|
+
*/
|
|
181
|
+
export interface PdfWorkbook {
|
|
182
|
+
title?: string;
|
|
183
|
+
creator?: string;
|
|
184
|
+
subject?: string;
|
|
185
|
+
sheets: PdfSheetData[];
|
|
186
|
+
}
|
|
5
187
|
/**
|
|
6
188
|
* Standard page sizes in PDF points (1 point = 1/72 inch).
|
|
7
189
|
*/
|
|
@@ -33,7 +215,7 @@ export interface PdfExportOptions {
|
|
|
33
215
|
*/
|
|
34
216
|
pageSize?: PageSizeName | PdfPageSize;
|
|
35
217
|
/**
|
|
36
|
-
* Page orientation. If not set, uses the
|
|
218
|
+
* Page orientation. If not set, uses the sheet's pageSetup.orientation.
|
|
37
219
|
* @default "portrait"
|
|
38
220
|
*/
|
|
39
221
|
orientation?: PdfOrientation;
|
|
@@ -43,8 +225,8 @@ export interface PdfExportOptions {
|
|
|
43
225
|
*/
|
|
44
226
|
margins?: Partial<PdfMargins>;
|
|
45
227
|
/**
|
|
46
|
-
* Which
|
|
47
|
-
* If omitted, all visible
|
|
228
|
+
* Which sheets to include. Accepts sheet names or 1-based positions.
|
|
229
|
+
* If omitted, all visible sheets are included.
|
|
48
230
|
*/
|
|
49
231
|
sheets?: (string | number)[];
|
|
50
232
|
/**
|
|
@@ -120,7 +302,7 @@ export interface PdfExportOptions {
|
|
|
120
302
|
* ```typescript
|
|
121
303
|
* import { readFileSync } from "fs";
|
|
122
304
|
* const font = readFileSync("NotoSansSC-Regular.ttf");
|
|
123
|
-
*
|
|
305
|
+
* excelToPdf(workbook, { font });
|
|
124
306
|
* ```
|
|
125
307
|
*/
|
|
126
308
|
font?: Uint8Array;
|
|
@@ -129,7 +311,7 @@ export interface PdfExportOptions {
|
|
|
129
311
|
*
|
|
130
312
|
* @example
|
|
131
313
|
* ```typescript
|
|
132
|
-
*
|
|
314
|
+
* excelToPdf(workbook, {
|
|
133
315
|
* encryption: {
|
|
134
316
|
* ownerPassword: "secret",
|
|
135
317
|
* userPassword: "open",
|
|
@@ -290,7 +472,7 @@ export interface LayoutBorder {
|
|
|
290
472
|
export interface LayoutPage {
|
|
291
473
|
/** Page number (1-based) */
|
|
292
474
|
pageNumber: number;
|
|
293
|
-
/** Resolved rendering options for the
|
|
475
|
+
/** Resolved rendering options for the sheet that produced this page */
|
|
294
476
|
options: ResolvedPdfOptions;
|
|
295
477
|
/** Cells to render on this page */
|
|
296
478
|
cells: LayoutCell[];
|
|
@@ -300,14 +482,14 @@ export interface LayoutPage {
|
|
|
300
482
|
height: number;
|
|
301
483
|
/** Sheet name for this page */
|
|
302
484
|
sheetName: string;
|
|
303
|
-
/**
|
|
304
|
-
|
|
485
|
+
/** Sheet column numbers included on this page */
|
|
486
|
+
sheetCols: number[];
|
|
305
487
|
/** Column x-offsets (left edges) relative to page content area */
|
|
306
488
|
columnOffsets: number[];
|
|
307
489
|
/** Column widths in points */
|
|
308
490
|
columnWidths: number[];
|
|
309
|
-
/**
|
|
310
|
-
|
|
491
|
+
/** Sheet row numbers included on this page */
|
|
492
|
+
sheetRows: number[];
|
|
311
493
|
/** Row y-offsets (top edges) in page coordinates (PDF bottom-left origin) */
|
|
312
494
|
rowYPositions: number[];
|
|
313
495
|
/** Row heights in points */
|