@pdfme/pdf-lib 1.18.1 → 1.18.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/cjs/api/PDFDocument.js +195 -225
- package/cjs/api/PDFDocument.js.map +1 -1
- package/cjs/api/PDFEmbeddedFile.js +30 -33
- package/cjs/api/PDFEmbeddedFile.js.map +1 -1
- package/cjs/api/PDFEmbeddedPage.js +5 -7
- package/cjs/api/PDFEmbeddedPage.js.map +1 -1
- package/cjs/api/PDFFont.js +6 -8
- package/cjs/api/PDFFont.js.map +1 -1
- package/cjs/api/PDFImage.js +14 -16
- package/cjs/api/PDFImage.js.map +1 -1
- package/cjs/api/PDFJavaScript.js +19 -22
- package/cjs/api/PDFJavaScript.js.map +1 -1
- package/cjs/api/PDFPage.d.ts.map +1 -1
- package/cjs/api/PDFPage.js +26 -16
- package/cjs/api/PDFPage.js.map +1 -1
- package/cjs/api/PDFPageOptions.d.ts +14 -8
- package/cjs/api/PDFPageOptions.d.ts.map +1 -1
- package/cjs/api/PDFPageOptions.js.map +1 -1
- package/cjs/api/form/PDFField.js +1 -1
- package/cjs/api/form/PDFField.js.map +1 -1
- package/cjs/api/form/PDFForm.js +1 -1
- package/cjs/api/form/PDFForm.js.map +1 -1
- package/cjs/api/form/appearances.js +56 -16
- package/cjs/api/form/appearances.js.map +1 -1
- package/cjs/api/operations.d.ts +15 -0
- package/cjs/api/operations.d.ts.map +1 -1
- package/cjs/api/operations.js +22 -0
- package/cjs/api/operations.js.map +1 -1
- package/cjs/api/svg.d.ts +7 -1
- package/cjs/api/svg.d.ts.map +1 -1
- package/cjs/api/svg.js +332 -1016
- package/cjs/api/svg.js.map +1 -1
- package/cjs/core/PDFContext.js +11 -2
- package/cjs/core/PDFContext.js.map +1 -1
- package/cjs/core/embedders/CustomFontEmbedder.js +62 -74
- package/cjs/core/embedders/CustomFontEmbedder.js.map +1 -1
- package/cjs/core/embedders/CustomFontSubsetEmbedder.js +3 -5
- package/cjs/core/embedders/CustomFontSubsetEmbedder.js.map +1 -1
- package/cjs/core/embedders/FileEmbedder.js +30 -32
- package/cjs/core/embedders/FileEmbedder.js.map +1 -1
- package/cjs/core/embedders/JavaScriptEmbedder.js +12 -14
- package/cjs/core/embedders/JavaScriptEmbedder.js.map +1 -1
- package/cjs/core/embedders/JpegEmbedder.js +54 -59
- package/cjs/core/embedders/JpegEmbedder.js.map +1 -1
- package/cjs/core/embedders/PDFPageEmbedder.js +22 -26
- package/cjs/core/embedders/PDFPageEmbedder.js.map +1 -1
- package/cjs/core/embedders/PngEmbedder.js +20 -25
- package/cjs/core/embedders/PngEmbedder.js.map +1 -1
- package/cjs/core/parser/PDFObjectStreamParser.js +15 -17
- package/cjs/core/parser/PDFObjectStreamParser.js.map +1 -1
- package/cjs/core/parser/PDFParser.js +66 -74
- package/cjs/core/parser/PDFParser.js.map +1 -1
- package/cjs/core/writers/PDFStreamWriter.js +53 -55
- package/cjs/core/writers/PDFStreamWriter.js.map +1 -1
- package/cjs/core/writers/PDFWriter.js +62 -66
- package/cjs/core/writers/PDFWriter.js.map +1 -1
- package/cjs/types/index.d.ts +4 -4
- package/cjs/types/index.d.ts.map +1 -1
- package/dist/pdf-lib.esm.js +1123 -2589
- package/dist/pdf-lib.esm.js.map +1 -1
- package/dist/pdf-lib.esm.min.js +1 -15
- package/dist/pdf-lib.esm.min.js.map +1 -1
- package/dist/pdf-lib.js +1123 -2589
- package/dist/pdf-lib.js.map +1 -1
- package/dist/pdf-lib.min.js +1 -15
- package/dist/pdf-lib.min.js.map +1 -1
- package/es/api/PDFDocument.js +195 -226
- package/es/api/PDFDocument.js.map +1 -1
- package/es/api/PDFEmbeddedFile.js +30 -33
- package/es/api/PDFEmbeddedFile.js.map +1 -1
- package/es/api/PDFEmbeddedPage.js +5 -8
- package/es/api/PDFEmbeddedPage.js.map +1 -1
- package/es/api/PDFFont.js +6 -9
- package/es/api/PDFFont.js.map +1 -1
- package/es/api/PDFImage.js +14 -17
- package/es/api/PDFImage.js.map +1 -1
- package/es/api/PDFJavaScript.js +19 -22
- package/es/api/PDFJavaScript.js.map +1 -1
- package/es/api/PDFPage.d.ts.map +1 -1
- package/es/api/PDFPage.js +26 -17
- package/es/api/PDFPage.js.map +1 -1
- package/es/api/PDFPageOptions.d.ts +14 -8
- package/es/api/PDFPageOptions.d.ts.map +1 -1
- package/es/api/PDFPageOptions.js.map +1 -1
- package/es/api/form/PDFField.js +1 -1
- package/es/api/form/PDFField.js.map +1 -1
- package/es/api/form/PDFForm.js +1 -1
- package/es/api/form/PDFForm.js.map +1 -1
- package/es/api/form/appearances.js +56 -16
- package/es/api/form/appearances.js.map +1 -1
- package/es/api/operations.d.ts +15 -0
- package/es/api/operations.d.ts.map +1 -1
- package/es/api/operations.js +23 -1
- package/es/api/operations.js.map +1 -1
- package/es/api/svg.d.ts +7 -1
- package/es/api/svg.d.ts.map +1 -1
- package/es/api/svg.js +333 -1017
- package/es/api/svg.js.map +1 -1
- package/es/core/PDFContext.js +11 -2
- package/es/core/PDFContext.js.map +1 -1
- package/es/core/embedders/CustomFontEmbedder.js +62 -75
- package/es/core/embedders/CustomFontEmbedder.js.map +1 -1
- package/es/core/embedders/CustomFontSubsetEmbedder.js +3 -6
- package/es/core/embedders/CustomFontSubsetEmbedder.js.map +1 -1
- package/es/core/embedders/FileEmbedder.js +30 -33
- package/es/core/embedders/FileEmbedder.js.map +1 -1
- package/es/core/embedders/JavaScriptEmbedder.js +12 -15
- package/es/core/embedders/JavaScriptEmbedder.js.map +1 -1
- package/es/core/embedders/JpegEmbedder.js +54 -59
- package/es/core/embedders/JpegEmbedder.js.map +1 -1
- package/es/core/embedders/PDFPageEmbedder.js +22 -27
- package/es/core/embedders/PDFPageEmbedder.js.map +1 -1
- package/es/core/embedders/PngEmbedder.js +20 -25
- package/es/core/embedders/PngEmbedder.js.map +1 -1
- package/es/core/parser/PDFObjectStreamParser.js +15 -18
- package/es/core/parser/PDFObjectStreamParser.js.map +1 -1
- package/es/core/parser/PDFParser.js +66 -75
- package/es/core/parser/PDFParser.js.map +1 -1
- package/es/core/writers/PDFStreamWriter.js +53 -56
- package/es/core/writers/PDFStreamWriter.js.map +1 -1
- package/es/core/writers/PDFWriter.js +62 -67
- package/es/core/writers/PDFWriter.js.map +1 -1
- package/es/types/index.d.ts +4 -4
- package/es/types/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/api/PDFPage.ts +12 -0
- package/src/api/PDFPageOptions.ts +14 -8
- package/src/api/operations.ts +45 -3
- package/src/api/svg.ts +305 -1086
- package/src/types/index.ts +6 -1
- package/ts3.4/cjs/api/PDFPageOptions.d.ts +14 -8
- package/ts3.4/cjs/api/operations.d.ts +15 -0
- package/ts3.4/cjs/api/svg.d.ts +7 -1
- package/ts3.4/cjs/types/index.d.ts +4 -4
- package/ts3.4/es/api/PDFPageOptions.d.ts +14 -8
- package/ts3.4/es/api/operations.d.ts +15 -0
- package/ts3.4/es/api/svg.d.ts +7 -1
- package/ts3.4/es/types/index.d.ts +4 -4
package/src/api/operations.ts
CHANGED
|
@@ -33,11 +33,13 @@ import {
|
|
|
33
33
|
appendBezierCurve,
|
|
34
34
|
FillRule,
|
|
35
35
|
fillEvenOdd,
|
|
36
|
+
concatTransformationMatrix,
|
|
36
37
|
} from './operators';
|
|
37
38
|
import { Rotation, degrees, toRadians } from './rotations';
|
|
38
39
|
import { svgPathToOperators } from './svgPath';
|
|
39
40
|
import { PDFHexString, PDFName, PDFNumber, PDFOperator } from '../core';
|
|
40
41
|
import { asNumber } from './objects';
|
|
42
|
+
import type { Space, TransformationMatrix } from '../types'
|
|
41
43
|
|
|
42
44
|
export interface DrawTextOptions {
|
|
43
45
|
color: Color;
|
|
@@ -49,8 +51,27 @@ export interface DrawTextOptions {
|
|
|
49
51
|
x: number | PDFNumber;
|
|
50
52
|
y: number | PDFNumber;
|
|
51
53
|
graphicsState?: string | PDFName;
|
|
54
|
+
matrix?: TransformationMatrix;
|
|
55
|
+
clipSpaces?: Space[];
|
|
52
56
|
}
|
|
53
57
|
|
|
58
|
+
const clipSpace = ({
|
|
59
|
+
topLeft,
|
|
60
|
+
topRight,
|
|
61
|
+
bottomRight,
|
|
62
|
+
bottomLeft
|
|
63
|
+
}: Space) =>
|
|
64
|
+
[
|
|
65
|
+
moveTo(topLeft.x, topLeft.y),
|
|
66
|
+
lineTo(topRight.x, topRight.y),
|
|
67
|
+
lineTo(bottomRight.x, bottomRight.y),
|
|
68
|
+
lineTo(bottomLeft.x, bottomLeft.y),
|
|
69
|
+
closePath(),
|
|
70
|
+
clip(),
|
|
71
|
+
endPath(),
|
|
72
|
+
]
|
|
73
|
+
const clipSpaces = (spaces: Space[]) => spaces.flatMap(clipSpace)
|
|
74
|
+
|
|
54
75
|
export const drawText = (
|
|
55
76
|
line: PDFHexString,
|
|
56
77
|
options: DrawTextOptions,
|
|
@@ -84,6 +105,8 @@ export const drawLinesOfText = (
|
|
|
84
105
|
const operators = [
|
|
85
106
|
pushGraphicsState(),
|
|
86
107
|
options.graphicsState && setGraphicsState(options.graphicsState),
|
|
108
|
+
...(options.clipSpaces ? clipSpaces(options.clipSpaces) : []),
|
|
109
|
+
options.matrix && concatTransformationMatrix(...options.matrix),
|
|
87
110
|
beginText(),
|
|
88
111
|
setFillingColor(options.color),
|
|
89
112
|
setFontAndSize(options.font, options.size),
|
|
@@ -116,11 +139,15 @@ export const drawImage = (
|
|
|
116
139
|
xSkew: Rotation;
|
|
117
140
|
ySkew: Rotation;
|
|
118
141
|
graphicsState?: string | PDFName;
|
|
142
|
+
matrix?: TransformationMatrix;
|
|
143
|
+
clipSpaces?: Space[];
|
|
119
144
|
},
|
|
120
145
|
): PDFOperator[] =>
|
|
121
146
|
[
|
|
122
147
|
pushGraphicsState(),
|
|
123
148
|
options.graphicsState && setGraphicsState(options.graphicsState),
|
|
149
|
+
...(options.clipSpaces ? clipSpaces(options.clipSpaces) : []),
|
|
150
|
+
options.matrix && concatTransformationMatrix(...options.matrix),
|
|
124
151
|
translate(options.x, options.y),
|
|
125
152
|
rotateRadians(toRadians(options.rotate)),
|
|
126
153
|
scale(options.width, options.height),
|
|
@@ -162,10 +189,14 @@ export const drawLine = (options: {
|
|
|
162
189
|
dashPhase?: number | PDFNumber;
|
|
163
190
|
lineCap?: LineCapStyle;
|
|
164
191
|
graphicsState?: string | PDFName;
|
|
192
|
+
matrix?: TransformationMatrix;
|
|
193
|
+
clipSpaces?: Space[];
|
|
165
194
|
}) =>
|
|
166
195
|
[
|
|
167
196
|
pushGraphicsState(),
|
|
168
197
|
options.graphicsState && setGraphicsState(options.graphicsState),
|
|
198
|
+
...(options.clipSpaces ? clipSpaces(options.clipSpaces) : []),
|
|
199
|
+
options.matrix && concatTransformationMatrix(...options.matrix),
|
|
169
200
|
options.color && setStrokingColor(options.color),
|
|
170
201
|
setLineWidth(options.thickness),
|
|
171
202
|
setDashPattern(options.dashArray ?? [], options.dashPhase ?? 0),
|
|
@@ -192,8 +223,9 @@ export const drawRectangle = (options: {
|
|
|
192
223
|
borderDashArray?: (number | PDFNumber)[];
|
|
193
224
|
borderDashPhase?: number | PDFNumber;
|
|
194
225
|
graphicsState?: string | PDFName;
|
|
195
|
-
|
|
196
|
-
[
|
|
226
|
+
matrix?: TransformationMatrix;
|
|
227
|
+
clipSpaces?: Space[];
|
|
228
|
+
}) => [
|
|
197
229
|
pushGraphicsState(),
|
|
198
230
|
options.graphicsState && setGraphicsState(options.graphicsState),
|
|
199
231
|
options.color && setFillingColor(options.color),
|
|
@@ -201,6 +233,8 @@ export const drawRectangle = (options: {
|
|
|
201
233
|
setLineWidth(options.borderWidth),
|
|
202
234
|
options.borderLineCap && setLineCap(options.borderLineCap),
|
|
203
235
|
setDashPattern(options.borderDashArray ?? [], options.borderDashPhase ?? 0),
|
|
236
|
+
...(options.clipSpaces ? clipSpaces(options.clipSpaces) : []),
|
|
237
|
+
options.matrix && concatTransformationMatrix(...options.matrix),
|
|
204
238
|
translate(options.x, options.y),
|
|
205
239
|
rotateRadians(toRadians(options.rotate)),
|
|
206
240
|
skewRadians(toRadians(options.xSkew), toRadians(options.ySkew)),
|
|
@@ -300,12 +334,16 @@ export const drawEllipse = (options: {
|
|
|
300
334
|
borderDashPhase?: number | PDFNumber;
|
|
301
335
|
graphicsState?: string | PDFName;
|
|
302
336
|
borderLineCap?: LineCapStyle;
|
|
337
|
+
matrix?: TransformationMatrix;
|
|
338
|
+
clipSpaces?: Space[];
|
|
303
339
|
}) =>
|
|
304
340
|
[
|
|
305
341
|
pushGraphicsState(),
|
|
306
342
|
options.graphicsState && setGraphicsState(options.graphicsState),
|
|
307
343
|
options.color && setFillingColor(options.color),
|
|
308
344
|
options.borderColor && setStrokingColor(options.borderColor),
|
|
345
|
+
...(options.clipSpaces ? clipSpaces(options.clipSpaces) : []),
|
|
346
|
+
options.matrix && concatTransformationMatrix(...options.matrix),
|
|
309
347
|
setLineWidth(options.borderWidth),
|
|
310
348
|
options.borderLineCap && setLineCap(options.borderLineCap),
|
|
311
349
|
setDashPattern(options.borderDashArray ?? [], options.borderDashPhase ?? 0),
|
|
@@ -350,12 +388,16 @@ export const drawSvgPath = (
|
|
|
350
388
|
borderDashPhase?: number | PDFNumber;
|
|
351
389
|
borderLineCap?: LineCapStyle;
|
|
352
390
|
graphicsState?: string | PDFName;
|
|
353
|
-
fillRule?: FillRule
|
|
391
|
+
fillRule?: FillRule;
|
|
392
|
+
matrix?: TransformationMatrix;
|
|
393
|
+
clipSpaces?: Space[];
|
|
354
394
|
},
|
|
355
395
|
) =>
|
|
356
396
|
[
|
|
357
397
|
pushGraphicsState(),
|
|
358
398
|
options.graphicsState && setGraphicsState(options.graphicsState),
|
|
399
|
+
...(options.clipSpaces ? clipSpaces(options.clipSpaces) : []),
|
|
400
|
+
options.matrix && concatTransformationMatrix(...options.matrix),
|
|
359
401
|
|
|
360
402
|
translate(options.x, options.y),
|
|
361
403
|
rotateRadians(toRadians(options.rotate ?? degrees(0))),
|