pdf-codec 1.4.2 → 1.6.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 +56 -15
- package/dist/assets/caladea-bold.cjs +5 -0
- package/dist/assets/caladea-bold.d.cts +4 -0
- package/dist/assets/caladea-bold.d.ts +4 -0
- package/dist/assets/caladea-bold.js +4 -0
- package/dist/assets/caladea-bolditalic.cjs +5 -0
- package/dist/assets/caladea-bolditalic.d.cts +4 -0
- package/dist/assets/caladea-bolditalic.d.ts +4 -0
- package/dist/assets/caladea-bolditalic.js +4 -0
- package/dist/assets/caladea-italic.cjs +5 -0
- package/dist/assets/caladea-italic.d.cts +4 -0
- package/dist/assets/caladea-italic.d.ts +4 -0
- package/dist/assets/caladea-italic.js +4 -0
- package/dist/assets/caladea-regular.cjs +5 -0
- package/dist/assets/caladea-regular.d.cts +4 -0
- package/dist/assets/caladea-regular.d.ts +4 -0
- package/dist/assets/caladea-regular.js +4 -0
- package/dist/assets/carlito-bold.cjs +5 -0
- package/dist/assets/carlito-bold.d.cts +4 -0
- package/dist/assets/carlito-bold.d.ts +4 -0
- package/dist/assets/carlito-bold.js +4 -0
- package/dist/assets/carlito-bolditalic.cjs +5 -0
- package/dist/assets/carlito-bolditalic.d.cts +4 -0
- package/dist/assets/carlito-bolditalic.d.ts +4 -0
- package/dist/assets/carlito-bolditalic.js +4 -0
- package/dist/assets/carlito-italic.cjs +5 -0
- package/dist/assets/carlito-italic.d.cts +4 -0
- package/dist/assets/carlito-italic.d.ts +4 -0
- package/dist/assets/carlito-italic.js +4 -0
- package/dist/assets/carlito-regular.cjs +5 -0
- package/dist/assets/carlito-regular.d.cts +4 -0
- package/dist/assets/carlito-regular.d.ts +4 -0
- package/dist/assets/carlito-regular.js +4 -0
- package/dist/cff-probe.cjs +133 -0
- package/dist/cff-probe.d.cts +10 -0
- package/dist/cff-probe.d.ts +10 -0
- package/dist/cff-probe.js +132 -0
- package/dist/cmap-table.cjs +108 -0
- package/dist/cmap-table.d.cts +6 -0
- package/dist/cmap-table.d.ts +6 -0
- package/dist/cmap-table.js +107 -0
- package/dist/content-write.cjs +36 -17
- package/dist/content-write.d.cts +9 -2
- package/dist/content-write.d.ts +9 -2
- package/dist/content-write.js +35 -16
- package/dist/crypto/aes.cjs +166 -0
- package/dist/crypto/aes.d.cts +6 -0
- package/dist/crypto/aes.d.ts +6 -0
- package/dist/crypto/aes.js +163 -0
- package/dist/crypto/md5.cjs +215 -0
- package/dist/crypto/md5.d.cts +4 -0
- package/dist/crypto/md5.d.ts +4 -0
- package/dist/crypto/md5.js +214 -0
- package/dist/crypto/rc4.cjs +29 -0
- package/dist/crypto/rc4.d.cts +4 -0
- package/dist/crypto/rc4.d.ts +4 -0
- package/dist/crypto/rc4.js +28 -0
- package/dist/crypto/sha2.cjs +261 -0
- package/dist/crypto/sha2.d.cts +6 -0
- package/dist/crypto/sha2.d.ts +6 -0
- package/dist/crypto/sha2.js +258 -0
- package/dist/diagnostics.cjs +7 -0
- package/dist/diagnostics.d.cts +4 -1
- package/dist/diagnostics.d.ts +4 -1
- package/dist/diagnostics.js +7 -1
- package/dist/document.cjs +38 -2
- package/dist/document.js +38 -2
- package/dist/embedded-font-CLedn-mT.d.cts +42 -0
- package/dist/embedded-font-CbqkKgBl.d.ts +42 -0
- package/dist/embedded-font-write.cjs +92 -0
- package/dist/embedded-font-write.d.cts +22 -0
- package/dist/embedded-font-write.d.ts +22 -0
- package/dist/embedded-font-write.js +90 -0
- package/dist/embedded-font.cjs +142 -0
- package/dist/embedded-font.d.cts +2 -0
- package/dist/embedded-font.d.ts +2 -0
- package/dist/embedded-font.js +138 -0
- package/dist/encrypt.cjs +264 -0
- package/dist/encrypt.d.cts +11 -0
- package/dist/encrypt.d.ts +11 -0
- package/dist/encrypt.js +263 -0
- package/dist/filters.cjs +19 -1
- package/dist/filters.js +19 -1
- package/dist/font-registry-Cn7P9lAh.d.ts +38 -0
- package/dist/font-registry-yby02snZ.d.cts +38 -0
- package/dist/font-registry.cjs +152 -0
- package/dist/font-registry.d.cts +2 -0
- package/dist/font-registry.d.ts +2 -0
- package/dist/font-registry.js +150 -0
- package/dist/font-substitutes.cjs +13 -0
- package/dist/font-substitutes.d.cts +5 -0
- package/dist/font-substitutes.d.ts +5 -0
- package/dist/font-substitutes.js +12 -0
- package/dist/font-tables.cjs +127 -0
- package/dist/font-tables.d.cts +43 -0
- package/dist/font-tables.d.ts +43 -0
- package/dist/font-tables.js +122 -0
- package/dist/fonts.cjs +1 -0
- package/dist/fonts.d.cts +2 -1
- package/dist/fonts.d.ts +2 -1
- package/dist/fonts.js +1 -1
- package/dist/glyf.cjs +127 -0
- package/dist/glyf.d.cts +31 -0
- package/dist/glyf.d.ts +31 -0
- package/dist/glyf.js +125 -0
- package/dist/{math-hmtx.cjs → hmtx-table.cjs} +3 -3
- package/dist/{math-hmtx.d.ts → hmtx-table.d.cts} +2 -2
- package/dist/{math-hmtx.d.cts → hmtx-table.d.ts} +2 -2
- package/dist/{math-hmtx.js → hmtx-table.js} +3 -3
- package/dist/image/ccitt.cjs +488 -0
- package/dist/image/ccitt.d.cts +17 -0
- package/dist/image/ccitt.d.ts +17 -0
- package/dist/image/ccitt.js +487 -0
- package/dist/images-read.cjs +1 -4
- package/dist/images-read.js +2 -5
- package/dist/index.cjs +8 -0
- package/dist/index.d.cts +7 -4
- package/dist/index.d.ts +7 -4
- package/dist/index.js +5 -3
- package/dist/interpret.cjs +173 -38
- package/dist/interpret.d.cts +27 -10
- package/dist/interpret.d.ts +27 -10
- package/dist/interpret.js +174 -39
- package/dist/math-font-write.cjs +3 -32
- package/dist/math-font-write.js +2 -31
- package/dist/math-font.cjs +7 -5
- package/dist/math-font.js +5 -3
- package/dist/math-table.d.cts +1 -1
- package/dist/math-table.d.ts +1 -1
- package/dist/{matrix-B3c2_a2f.d.cts → matrix-BHzJESll.d.cts} +2 -1
- package/dist/{matrix-B3c2_a2f.d.ts → matrix-BHzJESll.d.ts} +2 -1
- package/dist/matrix.cjs +2 -0
- package/dist/matrix.d.cts +2 -2
- package/dist/matrix.d.ts +2 -2
- package/dist/matrix.js +2 -1
- package/dist/measure.cjs +65 -14
- package/dist/measure.d.cts +8 -1
- package/dist/measure.d.ts +8 -1
- package/dist/measure.js +64 -15
- package/dist/objects.cjs +4 -0
- package/dist/objects.d.cts +2 -1
- package/dist/objects.d.ts +2 -1
- package/dist/objects.js +4 -1
- package/dist/read.cjs +43 -4
- package/dist/read.d.cts +1 -1
- package/dist/read.d.ts +1 -1
- package/dist/read.js +43 -4
- package/dist/sfnt-V08bb5ut.d.cts +21 -0
- package/dist/sfnt-V08bb5ut.d.ts +21 -0
- package/dist/sfnt-subset.cjs +250 -0
- package/dist/sfnt-subset.d.cts +11 -0
- package/dist/sfnt-subset.d.ts +11 -0
- package/dist/sfnt-subset.js +249 -0
- package/dist/sfnt.cjs +50 -4
- package/dist/sfnt.d.cts +2 -17
- package/dist/sfnt.d.ts +2 -17
- package/dist/sfnt.js +47 -5
- package/dist/tounicode.cjs +34 -0
- package/dist/tounicode.d.cts +5 -0
- package/dist/tounicode.d.ts +5 -0
- package/dist/tounicode.js +33 -0
- package/dist/write.cjs +81 -11
- package/dist/write.d.cts +6 -0
- package/dist/write.d.ts +6 -0
- package/dist/write.js +82 -12
- package/package.json +1 -1
- package/dist/math-cmap.cjs +0 -81
- package/dist/math-cmap.d.cts +0 -6
- package/dist/math-cmap.d.ts +0 -6
- package/dist/math-cmap.js +0 -80
package/dist/interpret.cjs
CHANGED
|
@@ -76,26 +76,176 @@ function matrixFromOperands(operands) {
|
|
|
76
76
|
numAt(operands, 5)
|
|
77
77
|
];
|
|
78
78
|
}
|
|
79
|
-
|
|
80
|
-
|
|
79
|
+
const SHAPE_ABS_TOLERANCE_PT = .001;
|
|
80
|
+
const SHAPE_REL_TOLERANCE = 1e-4;
|
|
81
|
+
function shapeTolerance(extentPt) {
|
|
82
|
+
return Math.max(SHAPE_ABS_TOLERANCE_PT, Math.abs(extentPt) * SHAPE_REL_TOLERANCE);
|
|
81
83
|
}
|
|
82
|
-
function
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
const
|
|
90
|
-
const
|
|
91
|
-
|
|
84
|
+
function nearlyEqual(a, b, tolerance) {
|
|
85
|
+
return Math.abs(a - b) <= tolerance;
|
|
86
|
+
}
|
|
87
|
+
function nearlyEqualPoints(a, b, tolerance) {
|
|
88
|
+
return nearlyEqual(a.x, b.x, tolerance) && nearlyEqual(a.y, b.y, tolerance);
|
|
89
|
+
}
|
|
90
|
+
function boundsOf(points) {
|
|
91
|
+
const xs = points.map((p) => p.x);
|
|
92
|
+
const ys = points.map((p) => p.y);
|
|
93
|
+
return {
|
|
94
|
+
minX: Math.min(...xs),
|
|
95
|
+
minY: Math.min(...ys),
|
|
96
|
+
maxX: Math.max(...xs),
|
|
97
|
+
maxY: Math.max(...ys)
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
function closedPolygonCorners(subpath) {
|
|
101
|
+
if (!subpath.closed) return;
|
|
102
|
+
const corners = [{
|
|
103
|
+
x: subpath.startXPt,
|
|
104
|
+
y: subpath.startYPt
|
|
105
|
+
}];
|
|
106
|
+
for (const segment of subpath.segments) {
|
|
107
|
+
if (segment.kind !== "line") return;
|
|
108
|
+
corners.push({
|
|
109
|
+
x: segment.xPt,
|
|
110
|
+
y: segment.yPt
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
const first = corners[0];
|
|
114
|
+
const last = corners[corners.length - 1];
|
|
115
|
+
if (first === void 0 || last === void 0 || corners.length < 2) return;
|
|
116
|
+
const bounds = boundsOf(corners);
|
|
117
|
+
if (nearlyEqualPoints(first, last, shapeTolerance(Math.max(bounds.maxX - bounds.minX, bounds.maxY - bounds.minY)))) corners.pop();
|
|
118
|
+
return corners;
|
|
119
|
+
}
|
|
120
|
+
function detectRect(subpath, paint) {
|
|
121
|
+
const corners = closedPolygonCorners(subpath);
|
|
122
|
+
if (corners?.length !== 4) return;
|
|
123
|
+
const { minX, minY, maxX, maxY } = boundsOf(corners);
|
|
124
|
+
const widthPt = maxX - minX;
|
|
125
|
+
const heightPt = maxY - minY;
|
|
126
|
+
const tolX = shapeTolerance(widthPt);
|
|
127
|
+
const tolY = shapeTolerance(heightPt);
|
|
128
|
+
if (widthPt <= tolX || heightPt <= tolY) return;
|
|
129
|
+
for (const corner of corners) {
|
|
130
|
+
if (!nearlyEqual(corner.x, minX, tolX) && !nearlyEqual(corner.x, maxX, tolX)) return;
|
|
131
|
+
if (!nearlyEqual(corner.y, minY, tolY) && !nearlyEqual(corner.y, maxY, tolY)) return;
|
|
132
|
+
}
|
|
133
|
+
for (let i = 0; i < corners.length; i += 1) {
|
|
134
|
+
const from = corners[i];
|
|
135
|
+
const to = corners[(i + 1) % corners.length];
|
|
136
|
+
if (from === void 0 || to === void 0) return;
|
|
137
|
+
if (nearlyEqual(from.x, to.x, tolX) === nearlyEqual(from.y, to.y, tolY)) return;
|
|
138
|
+
}
|
|
139
|
+
return {
|
|
140
|
+
kind: "rect",
|
|
141
|
+
xPt: minX,
|
|
142
|
+
yPt: minY,
|
|
143
|
+
widthPt,
|
|
144
|
+
heightPt,
|
|
145
|
+
fill: paint.fill,
|
|
146
|
+
stroke: paint.stroke
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
function cardinalExtremeOf(point, center, rx, ry, tolX, tolY) {
|
|
150
|
+
if (nearlyEqual(point.y, center.y, tolY)) {
|
|
151
|
+
if (nearlyEqual(point.x, center.x + rx, tolX)) return "right";
|
|
152
|
+
if (nearlyEqual(point.x, center.x - rx, tolX)) return "left";
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
if (nearlyEqual(point.x, center.x, tolX)) {
|
|
156
|
+
if (nearlyEqual(point.y, center.y + ry, tolY)) return "top";
|
|
157
|
+
if (nearlyEqual(point.y, center.y - ry, tolY)) return "bottom";
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
function expectedEllipseControl(atExtreme, atExtremeKind, otherEnd, center, kx, ky) {
|
|
161
|
+
if (atExtremeKind === "right" || atExtremeKind === "left") return {
|
|
162
|
+
x: atExtreme.x,
|
|
163
|
+
y: center.y + Math.sign(otherEnd.y - center.y) * ky
|
|
164
|
+
};
|
|
165
|
+
return {
|
|
166
|
+
x: center.x + Math.sign(otherEnd.x - center.x) * kx,
|
|
167
|
+
y: atExtreme.y
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
function detectEllipse(subpath, paint) {
|
|
171
|
+
const segments = subpath.segments;
|
|
172
|
+
if (!subpath.closed || segments.length !== 4 || segments.some((segment) => segment.kind !== "cubic")) return;
|
|
173
|
+
const start = {
|
|
174
|
+
x: subpath.startXPt,
|
|
175
|
+
y: subpath.startYPt
|
|
176
|
+
};
|
|
177
|
+
const onCurve = [start];
|
|
178
|
+
for (const segment of segments.slice(0, 3)) onCurve.push({
|
|
179
|
+
x: segment.xPt,
|
|
180
|
+
y: segment.yPt
|
|
181
|
+
});
|
|
182
|
+
const { minX, minY, maxX, maxY } = boundsOf(onCurve);
|
|
183
|
+
const rx = (maxX - minX) / 2;
|
|
184
|
+
const ry = (maxY - minY) / 2;
|
|
185
|
+
const center = {
|
|
186
|
+
x: (minX + maxX) / 2,
|
|
187
|
+
y: (minY + maxY) / 2
|
|
188
|
+
};
|
|
189
|
+
const tolX = shapeTolerance(rx);
|
|
190
|
+
const tolY = shapeTolerance(ry);
|
|
191
|
+
if (rx <= tolX || ry <= tolY) return;
|
|
192
|
+
const finalSegment = segments[3];
|
|
193
|
+
if (finalSegment === void 0 || !nearlyEqualPoints({
|
|
194
|
+
x: finalSegment.xPt,
|
|
195
|
+
y: finalSegment.yPt
|
|
196
|
+
}, start, Math.max(tolX, tolY))) return;
|
|
197
|
+
const extremes = onCurve.map((point) => cardinalExtremeOf(point, center, rx, ry, tolX, tolY));
|
|
198
|
+
if (extremes.some((extreme) => extreme === void 0) || new Set(extremes).size !== 4) return;
|
|
199
|
+
const kx = rx * require_matrix.BEZIER_KAPPA;
|
|
200
|
+
const ky = ry * require_matrix.BEZIER_KAPPA;
|
|
201
|
+
const controlTolerance = Math.max(tolX, tolY);
|
|
202
|
+
for (let i = 0; i < 4; i += 1) {
|
|
203
|
+
const segment = segments[i];
|
|
204
|
+
const from = onCurve[i];
|
|
205
|
+
const fromKind = extremes[i];
|
|
206
|
+
const to = onCurve[(i + 1) % 4];
|
|
207
|
+
const toKind = extremes[(i + 1) % 4];
|
|
208
|
+
if (segment?.kind !== "cubic" || from === void 0 || to === void 0 || fromKind === void 0 || toKind === void 0) return;
|
|
209
|
+
const expectedC1 = expectedEllipseControl(from, fromKind, to, center, kx, ky);
|
|
210
|
+
const expectedC2 = expectedEllipseControl(to, toKind, from, center, kx, ky);
|
|
211
|
+
if (!nearlyEqualPoints({
|
|
212
|
+
x: segment.c1xPt,
|
|
213
|
+
y: segment.c1yPt
|
|
214
|
+
}, expectedC1, controlTolerance)) return;
|
|
215
|
+
if (!nearlyEqualPoints({
|
|
216
|
+
x: segment.c2xPt,
|
|
217
|
+
y: segment.c2yPt
|
|
218
|
+
}, expectedC2, controlTolerance)) return;
|
|
219
|
+
}
|
|
92
220
|
return {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
221
|
+
kind: "ellipse",
|
|
222
|
+
xPt: minX,
|
|
223
|
+
yPt: minY,
|
|
224
|
+
widthPt: maxX - minX,
|
|
225
|
+
heightPt: maxY - minY,
|
|
226
|
+
fill: paint.fill,
|
|
227
|
+
stroke: paint.stroke
|
|
97
228
|
};
|
|
98
229
|
}
|
|
230
|
+
function detectLine(subpath, paint) {
|
|
231
|
+
const segment = subpath.segments[0];
|
|
232
|
+
if (subpath.closed || subpath.segments.length !== 1 || segment?.kind !== "line") return;
|
|
233
|
+
if (paint.fill !== void 0 || paint.stroke === void 0) return;
|
|
234
|
+
return {
|
|
235
|
+
kind: "line",
|
|
236
|
+
x1Pt: subpath.startXPt,
|
|
237
|
+
y1Pt: subpath.startYPt,
|
|
238
|
+
x2Pt: segment.xPt,
|
|
239
|
+
y2Pt: segment.yPt,
|
|
240
|
+
color: paint.stroke.color,
|
|
241
|
+
widthPt: paint.stroke.widthPt
|
|
242
|
+
};
|
|
243
|
+
}
|
|
244
|
+
function classifyShape(subpaths, paint) {
|
|
245
|
+
const subpath = subpaths[0];
|
|
246
|
+
if (subpaths.length !== 1 || subpath === void 0) return;
|
|
247
|
+
return detectRect(subpath, paint) ?? detectEllipse(subpath, paint) ?? detectLine(subpath, paint);
|
|
248
|
+
}
|
|
99
249
|
function interpretContentStream(bytes, resources, context) {
|
|
100
250
|
const items = [];
|
|
101
251
|
runContentStream(bytes, resources, {
|
|
@@ -121,7 +271,6 @@ function runContentStream(bytes, resources, initialState, context, items, depth)
|
|
|
121
271
|
const gsStack = [];
|
|
122
272
|
let gs = initialState;
|
|
123
273
|
let ts = defaultTextState();
|
|
124
|
-
let pendingRect;
|
|
125
274
|
let pathSubpaths = [];
|
|
126
275
|
let currentSubpath;
|
|
127
276
|
const finalizeCurrentSubpath = () => {
|
|
@@ -131,7 +280,6 @@ function runContentStream(bytes, resources, initialState, context, items, depth)
|
|
|
131
280
|
}
|
|
132
281
|
};
|
|
133
282
|
const resetPath = () => {
|
|
134
|
-
pendingRect = void 0;
|
|
135
283
|
pathSubpaths = [];
|
|
136
284
|
currentSubpath = void 0;
|
|
137
285
|
};
|
|
@@ -187,28 +335,22 @@ function runContentStream(bytes, resources, initialState, context, items, depth)
|
|
|
187
335
|
return;
|
|
188
336
|
}
|
|
189
337
|
if ((operator === "s" || operator === "b" || operator === "b*") && currentSubpath !== void 0) currentSubpath.closed = true;
|
|
190
|
-
if ((operator === "f" || operator === "F" || operator === "f*") && currentSubpath === void 0 && pathSubpaths.length === 1 && pendingRect !== void 0) {
|
|
191
|
-
items.push({
|
|
192
|
-
kind: "rect",
|
|
193
|
-
...pendingRect,
|
|
194
|
-
color: gs.fillColor
|
|
195
|
-
});
|
|
196
|
-
resetPath();
|
|
197
|
-
return;
|
|
198
|
-
}
|
|
199
338
|
finalizeCurrentSubpath();
|
|
200
339
|
if (pathSubpaths.length > 0) {
|
|
201
340
|
const isFillOp = operator === "f" || operator === "F" || operator === "f*" || operator === "B" || operator === "B*" || operator === "b" || operator === "b*";
|
|
202
341
|
const isStrokeOp = operator === "S" || operator === "s" || operator === "B" || operator === "B*" || operator === "b" || operator === "b*";
|
|
203
|
-
|
|
204
|
-
kind: "path",
|
|
205
|
-
subpaths: pathSubpaths,
|
|
206
|
-
fillRule: paintFillRuleFor(operator),
|
|
342
|
+
const paint = {
|
|
207
343
|
fill: isFillOp ? gs.fillColor : void 0,
|
|
208
344
|
stroke: isStrokeOp ? {
|
|
209
345
|
color: gs.strokeColor,
|
|
210
346
|
widthPt: gs.lineWidth
|
|
211
347
|
} : void 0
|
|
348
|
+
};
|
|
349
|
+
items.push(classifyShape(pathSubpaths, paint) ?? {
|
|
350
|
+
kind: "path",
|
|
351
|
+
subpaths: pathSubpaths,
|
|
352
|
+
fillRule: paintFillRuleFor(operator),
|
|
353
|
+
...paint
|
|
212
354
|
});
|
|
213
355
|
}
|
|
214
356
|
resetPath();
|
|
@@ -395,7 +537,6 @@ function runContentStream(bytes, resources, initialState, context, items, depth)
|
|
|
395
537
|
break;
|
|
396
538
|
}
|
|
397
539
|
case "re":
|
|
398
|
-
pendingRect = rectFromOperands(operands, gs.ctm);
|
|
399
540
|
appendRectSubpath(operands, gs.ctm);
|
|
400
541
|
break;
|
|
401
542
|
case "m": {
|
|
@@ -410,7 +551,6 @@ function runContentStream(bytes, resources, initialState, context, items, depth)
|
|
|
410
551
|
segments: [],
|
|
411
552
|
closed: false
|
|
412
553
|
};
|
|
413
|
-
pendingRect = void 0;
|
|
414
554
|
break;
|
|
415
555
|
}
|
|
416
556
|
case "l": {
|
|
@@ -423,7 +563,6 @@ function runContentStream(bytes, resources, initialState, context, items, depth)
|
|
|
423
563
|
xPt: p.x,
|
|
424
564
|
yPt: p.y
|
|
425
565
|
});
|
|
426
|
-
pendingRect = void 0;
|
|
427
566
|
break;
|
|
428
567
|
}
|
|
429
568
|
case "c": {
|
|
@@ -448,7 +587,6 @@ function runContentStream(bytes, resources, initialState, context, items, depth)
|
|
|
448
587
|
xPt: p.x,
|
|
449
588
|
yPt: p.y
|
|
450
589
|
});
|
|
451
|
-
pendingRect = void 0;
|
|
452
590
|
break;
|
|
453
591
|
}
|
|
454
592
|
case "v":
|
|
@@ -472,7 +610,6 @@ function runContentStream(bytes, resources, initialState, context, items, depth)
|
|
|
472
610
|
yPt: p.y
|
|
473
611
|
});
|
|
474
612
|
}
|
|
475
|
-
pendingRect = void 0;
|
|
476
613
|
break;
|
|
477
614
|
case "y": {
|
|
478
615
|
const c1 = require_matrix.applyMatrix(gs.ctm, {
|
|
@@ -492,12 +629,10 @@ function runContentStream(bytes, resources, initialState, context, items, depth)
|
|
|
492
629
|
xPt: p.x,
|
|
493
630
|
yPt: p.y
|
|
494
631
|
});
|
|
495
|
-
pendingRect = void 0;
|
|
496
632
|
break;
|
|
497
633
|
}
|
|
498
634
|
case "h":
|
|
499
635
|
if (currentSubpath !== void 0) currentSubpath.closed = true;
|
|
500
|
-
pendingRect = void 0;
|
|
501
636
|
break;
|
|
502
637
|
case "w":
|
|
503
638
|
gs = {
|
package/dist/interpret.d.cts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { PdfDiagnosticSink } from "./diagnostics.cjs";
|
|
2
2
|
import { PdfDict, PdfObject } from "./objects.cjs";
|
|
3
|
-
import {
|
|
3
|
+
import { r as Matrix } from "./matrix-BHzJESll.cjs";
|
|
4
4
|
import { Color } from "document-schema.js";
|
|
5
5
|
//#region src/interpret.d.ts
|
|
6
6
|
interface ExtractedTextRun {
|
|
@@ -13,13 +13,35 @@ interface ExtractedTextRun {
|
|
|
13
13
|
readonly sizePt: number;
|
|
14
14
|
readonly color: Color;
|
|
15
15
|
}
|
|
16
|
-
interface
|
|
16
|
+
interface ExtractedPaint {
|
|
17
|
+
readonly fill: Color | undefined;
|
|
18
|
+
readonly stroke: {
|
|
19
|
+
readonly color: Color;
|
|
20
|
+
readonly widthPt: number;
|
|
21
|
+
} | undefined;
|
|
22
|
+
}
|
|
23
|
+
interface ExtractedRect extends ExtractedPaint {
|
|
17
24
|
readonly kind: 'rect';
|
|
18
25
|
readonly xPt: number;
|
|
19
26
|
readonly yPt: number;
|
|
20
27
|
readonly widthPt: number;
|
|
21
28
|
readonly heightPt: number;
|
|
29
|
+
}
|
|
30
|
+
interface ExtractedEllipse extends ExtractedPaint {
|
|
31
|
+
readonly kind: 'ellipse';
|
|
32
|
+
readonly xPt: number;
|
|
33
|
+
readonly yPt: number;
|
|
34
|
+
readonly widthPt: number;
|
|
35
|
+
readonly heightPt: number;
|
|
36
|
+
}
|
|
37
|
+
interface ExtractedLine {
|
|
38
|
+
readonly kind: 'line';
|
|
39
|
+
readonly x1Pt: number;
|
|
40
|
+
readonly y1Pt: number;
|
|
41
|
+
readonly x2Pt: number;
|
|
42
|
+
readonly y2Pt: number;
|
|
22
43
|
readonly color: Color;
|
|
44
|
+
readonly widthPt: number;
|
|
23
45
|
}
|
|
24
46
|
type ExtractedPathSegment = {
|
|
25
47
|
readonly kind: 'line';
|
|
@@ -40,15 +62,10 @@ interface ExtractedSubpath {
|
|
|
40
62
|
readonly segments: readonly ExtractedPathSegment[];
|
|
41
63
|
readonly closed: boolean;
|
|
42
64
|
}
|
|
43
|
-
interface ExtractedPath {
|
|
65
|
+
interface ExtractedPath extends ExtractedPaint {
|
|
44
66
|
readonly kind: 'path';
|
|
45
67
|
readonly subpaths: readonly ExtractedSubpath[];
|
|
46
68
|
readonly fillRule: 'nonzero' | 'evenodd';
|
|
47
|
-
readonly fill: Color | undefined;
|
|
48
|
-
readonly stroke: {
|
|
49
|
-
readonly color: Color;
|
|
50
|
-
readonly widthPt: number;
|
|
51
|
-
} | undefined;
|
|
52
69
|
}
|
|
53
70
|
interface ExtractedImage {
|
|
54
71
|
readonly kind: 'image';
|
|
@@ -62,7 +79,7 @@ interface ExtractedInlineImage {
|
|
|
62
79
|
readonly data: Uint8Array<ArrayBuffer>;
|
|
63
80
|
readonly matrix: Matrix;
|
|
64
81
|
}
|
|
65
|
-
type ExtractedItem = ExtractedTextRun | ExtractedRect | ExtractedPath | ExtractedImage | ExtractedInlineImage;
|
|
82
|
+
type ExtractedItem = ExtractedTextRun | ExtractedRect | ExtractedEllipse | ExtractedLine | ExtractedPath | ExtractedImage | ExtractedInlineImage;
|
|
66
83
|
interface GlyphAdvance {
|
|
67
84
|
readonly widthPer1000: number;
|
|
68
85
|
readonly byteLengthConsumed: number;
|
|
@@ -81,4 +98,4 @@ interface InterpretContext {
|
|
|
81
98
|
}
|
|
82
99
|
declare function interpretContentStream(bytes: Uint8Array<ArrayBuffer>, resources: PdfDict, context: InterpretContext): ExtractedItem[];
|
|
83
100
|
//#endregion
|
|
84
|
-
export { ExtractedImage, ExtractedInlineImage, ExtractedItem, ExtractedPath, ExtractedPathSegment, ExtractedRect, ExtractedSubpath, ExtractedTextRun, FontMetricsPort, GlyphAdvance, InterpretContext, PdfObjectResolver, interpretContentStream };
|
|
101
|
+
export { ExtractedEllipse, ExtractedImage, ExtractedInlineImage, ExtractedItem, ExtractedLine, ExtractedPaint, ExtractedPath, ExtractedPathSegment, ExtractedRect, ExtractedSubpath, ExtractedTextRun, FontMetricsPort, GlyphAdvance, InterpretContext, PdfObjectResolver, interpretContentStream };
|
package/dist/interpret.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { PdfDiagnosticSink } from "./diagnostics.js";
|
|
2
2
|
import { PdfDict, PdfObject } from "./objects.js";
|
|
3
|
-
import {
|
|
3
|
+
import { r as Matrix } from "./matrix-BHzJESll.js";
|
|
4
4
|
import { Color } from "document-schema.js";
|
|
5
5
|
//#region src/interpret.d.ts
|
|
6
6
|
interface ExtractedTextRun {
|
|
@@ -13,13 +13,35 @@ interface ExtractedTextRun {
|
|
|
13
13
|
readonly sizePt: number;
|
|
14
14
|
readonly color: Color;
|
|
15
15
|
}
|
|
16
|
-
interface
|
|
16
|
+
interface ExtractedPaint {
|
|
17
|
+
readonly fill: Color | undefined;
|
|
18
|
+
readonly stroke: {
|
|
19
|
+
readonly color: Color;
|
|
20
|
+
readonly widthPt: number;
|
|
21
|
+
} | undefined;
|
|
22
|
+
}
|
|
23
|
+
interface ExtractedRect extends ExtractedPaint {
|
|
17
24
|
readonly kind: 'rect';
|
|
18
25
|
readonly xPt: number;
|
|
19
26
|
readonly yPt: number;
|
|
20
27
|
readonly widthPt: number;
|
|
21
28
|
readonly heightPt: number;
|
|
29
|
+
}
|
|
30
|
+
interface ExtractedEllipse extends ExtractedPaint {
|
|
31
|
+
readonly kind: 'ellipse';
|
|
32
|
+
readonly xPt: number;
|
|
33
|
+
readonly yPt: number;
|
|
34
|
+
readonly widthPt: number;
|
|
35
|
+
readonly heightPt: number;
|
|
36
|
+
}
|
|
37
|
+
interface ExtractedLine {
|
|
38
|
+
readonly kind: 'line';
|
|
39
|
+
readonly x1Pt: number;
|
|
40
|
+
readonly y1Pt: number;
|
|
41
|
+
readonly x2Pt: number;
|
|
42
|
+
readonly y2Pt: number;
|
|
22
43
|
readonly color: Color;
|
|
44
|
+
readonly widthPt: number;
|
|
23
45
|
}
|
|
24
46
|
type ExtractedPathSegment = {
|
|
25
47
|
readonly kind: 'line';
|
|
@@ -40,15 +62,10 @@ interface ExtractedSubpath {
|
|
|
40
62
|
readonly segments: readonly ExtractedPathSegment[];
|
|
41
63
|
readonly closed: boolean;
|
|
42
64
|
}
|
|
43
|
-
interface ExtractedPath {
|
|
65
|
+
interface ExtractedPath extends ExtractedPaint {
|
|
44
66
|
readonly kind: 'path';
|
|
45
67
|
readonly subpaths: readonly ExtractedSubpath[];
|
|
46
68
|
readonly fillRule: 'nonzero' | 'evenodd';
|
|
47
|
-
readonly fill: Color | undefined;
|
|
48
|
-
readonly stroke: {
|
|
49
|
-
readonly color: Color;
|
|
50
|
-
readonly widthPt: number;
|
|
51
|
-
} | undefined;
|
|
52
69
|
}
|
|
53
70
|
interface ExtractedImage {
|
|
54
71
|
readonly kind: 'image';
|
|
@@ -62,7 +79,7 @@ interface ExtractedInlineImage {
|
|
|
62
79
|
readonly data: Uint8Array<ArrayBuffer>;
|
|
63
80
|
readonly matrix: Matrix;
|
|
64
81
|
}
|
|
65
|
-
type ExtractedItem = ExtractedTextRun | ExtractedRect | ExtractedPath | ExtractedImage | ExtractedInlineImage;
|
|
82
|
+
type ExtractedItem = ExtractedTextRun | ExtractedRect | ExtractedEllipse | ExtractedLine | ExtractedPath | ExtractedImage | ExtractedInlineImage;
|
|
66
83
|
interface GlyphAdvance {
|
|
67
84
|
readonly widthPer1000: number;
|
|
68
85
|
readonly byteLengthConsumed: number;
|
|
@@ -81,4 +98,4 @@ interface InterpretContext {
|
|
|
81
98
|
}
|
|
82
99
|
declare function interpretContentStream(bytes: Uint8Array<ArrayBuffer>, resources: PdfDict, context: InterpretContext): ExtractedItem[];
|
|
83
100
|
//#endregion
|
|
84
|
-
export { ExtractedImage, ExtractedInlineImage, ExtractedItem, ExtractedPath, ExtractedPathSegment, ExtractedRect, ExtractedSubpath, ExtractedTextRun, FontMetricsPort, GlyphAdvance, InterpretContext, PdfObjectResolver, interpretContentStream };
|
|
101
|
+
export { ExtractedEllipse, ExtractedImage, ExtractedInlineImage, ExtractedItem, ExtractedLine, ExtractedPaint, ExtractedPath, ExtractedPathSegment, ExtractedRect, ExtractedSubpath, ExtractedTextRun, FontMetricsPort, GlyphAdvance, InterpretContext, PdfObjectResolver, interpretContentStream };
|