@chialab/pdfjs-lib 1.0.0-alpha.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.
Files changed (104) hide show
  1. package/README.md +29 -0
  2. package/dist/browser/FoxitDingbats-SB6TO3S5.js +9 -0
  3. package/dist/browser/FoxitFixed-UIGSMBQB.js +9 -0
  4. package/dist/browser/FoxitFixedBold-2PAEIZAT.js +9 -0
  5. package/dist/browser/FoxitFixedBoldItalic-OSQUQDEE.js +9 -0
  6. package/dist/browser/FoxitFixedItalic-W73RDK22.js +9 -0
  7. package/dist/browser/FoxitSerif-3HH3SOZF.js +9 -0
  8. package/dist/browser/FoxitSerifBold-HXP2QOO7.js +9 -0
  9. package/dist/browser/FoxitSerifBoldItalic-FZXLNWD7.js +9 -0
  10. package/dist/browser/FoxitSerifItalic-WQFHUBI2.js +9 -0
  11. package/dist/browser/FoxitSymbol-OVWU7LKS.js +9 -0
  12. package/dist/browser/LiberationMono-Regular-UUOCTXY2.js +9 -0
  13. package/dist/browser/LiberationSans-Bold-GSJN42N5.js +9 -0
  14. package/dist/browser/LiberationSans-BoldItalic-UCPQJ3L2.js +9 -0
  15. package/dist/browser/LiberationSans-Italic-6CIHEALY.js +9 -0
  16. package/dist/browser/LiberationSans-Regular-KIF3IRJY.js +9 -0
  17. package/dist/browser/LiberationSerif-Regular-ASQ2LI3D.js +9 -0
  18. package/dist/browser/chunk-DYHYQ33L.js +1775 -0
  19. package/dist/browser/chunk-O4UKW7AD.js +44 -0
  20. package/dist/browser/index.js +26324 -0
  21. package/dist/browser/worker.js +84242 -0
  22. package/dist/index.d.ts +10 -0
  23. package/dist/lib/AnnotationData.d.ts +204 -0
  24. package/dist/lib/Canvas.d.ts +17 -0
  25. package/dist/lib/PDFPageProxy.d.ts +1 -0
  26. package/dist/lib/Path2D.d.ts +72 -0
  27. package/dist/lib/StandardFontDataFactory.d.ts +14 -0
  28. package/dist/lib/SvgCanvasContext.d.ts +156 -0
  29. package/dist/lib/TextLayer.d.ts +51 -0
  30. package/dist/lib/polyfills.d.ts +0 -0
  31. package/dist/lib/utils.d.ts +13 -0
  32. package/dist/node/FoxitDingbats-65AZ2Z2V.js +9 -0
  33. package/dist/node/FoxitFixed-OZGLVVOQ.js +9 -0
  34. package/dist/node/FoxitFixedBold-37OOYMV7.js +9 -0
  35. package/dist/node/FoxitFixedBoldItalic-XYFHEG2V.js +9 -0
  36. package/dist/node/FoxitFixedItalic-MM7OSGS6.js +9 -0
  37. package/dist/node/FoxitSerif-MLMJQPRP.js +9 -0
  38. package/dist/node/FoxitSerifBold-AC7RJQWJ.js +9 -0
  39. package/dist/node/FoxitSerifBoldItalic-YCQ4CLKE.js +9 -0
  40. package/dist/node/FoxitSerifItalic-CXVTCST4.js +9 -0
  41. package/dist/node/FoxitSymbol-VUGMZN5C.js +9 -0
  42. package/dist/node/LiberationMono-Regular-KMFXXO3B.js +9 -0
  43. package/dist/node/LiberationSans-Bold-XSHQQBWB.js +9 -0
  44. package/dist/node/LiberationSans-BoldItalic-CTAZRFRL.js +9 -0
  45. package/dist/node/LiberationSans-Italic-WIOTUKLC.js +9 -0
  46. package/dist/node/LiberationSans-Regular-CDMMZL5S.js +9 -0
  47. package/dist/node/LiberationSerif-Regular-WAOWR76G.js +9 -0
  48. package/dist/node/chunk-7MW5RQZ5.js +30 -0
  49. package/dist/node/chunk-KTTVPO2G.js +1775 -0
  50. package/dist/node/index.js +26621 -0
  51. package/dist/node/worker.js +84242 -0
  52. package/dist/pdf.js/src/display/annotation_layer.d.ts +241 -0
  53. package/dist/pdf.js/src/display/annotation_storage.d.ts +99 -0
  54. package/dist/pdf.js/src/display/api.d.ts +1586 -0
  55. package/dist/pdf.js/src/display/canvas.d.ts +213 -0
  56. package/dist/pdf.js/src/display/canvas_factory.d.ts +27 -0
  57. package/dist/pdf.js/src/display/cmap_reader_factory.d.ts +25 -0
  58. package/dist/pdf.js/src/display/display_utils.d.ts +247 -0
  59. package/dist/pdf.js/src/display/draw_layer.d.ts +26 -0
  60. package/dist/pdf.js/src/display/editor/alt_text.d.ts +34 -0
  61. package/dist/pdf.js/src/display/editor/annotation_editor_layer.d.ts +230 -0
  62. package/dist/pdf.js/src/display/editor/color_picker.d.ts +20 -0
  63. package/dist/pdf.js/src/display/editor/draw.d.ts +121 -0
  64. package/dist/pdf.js/src/display/editor/drawers/contour.d.ts +3 -0
  65. package/dist/pdf.js/src/display/editor/drawers/freedraw.d.ts +31 -0
  66. package/dist/pdf.js/src/display/editor/drawers/highlight.d.ts +36 -0
  67. package/dist/pdf.js/src/display/editor/drawers/inkdraw.d.ts +129 -0
  68. package/dist/pdf.js/src/display/editor/drawers/outline.d.ts +19 -0
  69. package/dist/pdf.js/src/display/editor/drawers/signaturedraw.d.ts +79 -0
  70. package/dist/pdf.js/src/display/editor/editor.d.ts +474 -0
  71. package/dist/pdf.js/src/display/editor/freetext.d.ts +59 -0
  72. package/dist/pdf.js/src/display/editor/highlight.d.ts +70 -0
  73. package/dist/pdf.js/src/display/editor/ink.d.ts +36 -0
  74. package/dist/pdf.js/src/display/editor/signature.d.ts +79 -0
  75. package/dist/pdf.js/src/display/editor/stamp.d.ts +48 -0
  76. package/dist/pdf.js/src/display/editor/toolbar.d.ts +21 -0
  77. package/dist/pdf.js/src/display/editor/tools.d.ts +424 -0
  78. package/dist/pdf.js/src/display/filter_factory.d.ts +29 -0
  79. package/dist/pdf.js/src/display/font_loader.d.ts +39 -0
  80. package/dist/pdf.js/src/display/metadata.d.ts +11 -0
  81. package/dist/pdf.js/src/display/node_utils.d.ts +32 -0
  82. package/dist/pdf.js/src/display/optional_content_config.d.ts +18 -0
  83. package/dist/pdf.js/src/display/pattern_helper.d.ts +73 -0
  84. package/dist/pdf.js/src/display/standard_fontdata_factory.d.ts +20 -0
  85. package/dist/pdf.js/src/display/svg_factory.d.ts +14 -0
  86. package/dist/pdf.js/src/display/text_layer.d.ts +85 -0
  87. package/dist/pdf.js/src/display/touch_manager.d.ts +14 -0
  88. package/dist/pdf.js/src/display/transport_stream.d.ts +67 -0
  89. package/dist/pdf.js/src/display/wasm_factory.d.ts +20 -0
  90. package/dist/pdf.js/src/display/worker_options.d.ts +25 -0
  91. package/dist/pdf.js/src/display/xfa_layer.d.ts +47 -0
  92. package/dist/pdf.js/src/display/xfa_text.d.ts +21 -0
  93. package/dist/pdf.js/src/interfaces.d.ts +122 -0
  94. package/dist/pdf.js/src/pdf.d.ts +55 -0
  95. package/dist/pdf.js/src/shared/image_utils.d.ts +17 -0
  96. package/dist/pdf.js/src/shared/message_handler.d.ts +48 -0
  97. package/dist/pdf.js/src/shared/murmurhash3.d.ts +7 -0
  98. package/dist/pdf.js/src/shared/scripting_utils.d.ts +16 -0
  99. package/dist/pdf.js/src/shared/util.d.ts +388 -0
  100. package/dist/pdf.js/web/interfaces.d.ts +167 -0
  101. package/dist/pdf.js/web/struct_tree_layer_builder.d.ts +25 -0
  102. package/dist/pdf.js/web/text_accessibility.d.ts +44 -0
  103. package/dist/pdf.js/web/ui_utils.d.ts +273 -0
  104. package/package.json +43 -0
@@ -0,0 +1,10 @@
1
+ import './lib/polyfills';
2
+ import './lib/PDFPageProxy';
3
+ export type { DocumentInitParameters } from './pdf.js/src/display/api';
4
+ export type { BaseCanvasFactory } from './pdf.js/src/display/canvas_factory';
5
+ export * from './lib/utils';
6
+ export * from './lib/StandardFontDataFactory';
7
+ export * from './lib/AnnotationData';
8
+ export * from './lib/SvgCanvasContext';
9
+ export * from './lib/TextLayer';
10
+ export * from './pdf.js/src/pdf.js';
@@ -0,0 +1,204 @@
1
+ type Rect = [number, number, number, number];
2
+ type Color = [number, number, number];
3
+ type Dir = 'ltr' | 'rtl';
4
+ declare enum BorderStyle {
5
+ SOLID = 1,
6
+ DASHED = 2
7
+ }
8
+ declare enum LineEnding {
9
+ NONE = "None",
10
+ SQUARE = "Square",
11
+ CIRCLE = "Circle",
12
+ DIAMOND = "Diamond",
13
+ OPEN_ARROW = "OpenArrow",
14
+ CLOSED_ARROW = "ClosedArrow",
15
+ BUTT = "Butt",
16
+ R_OPEN_ARROW = "ROpenArrow",
17
+ R_CLOSED_ARROW = "RClosedArrow",
18
+ SLASH = "Slash"
19
+ }
20
+ export interface AnnotationData {
21
+ id: string;
22
+ subtype: string;
23
+ rect: Rect;
24
+ rectDifference?: Rect;
25
+ color?: Color | null;
26
+ interiorColor?: Color | null;
27
+ interiorColorOpacity?: number | null;
28
+ borderColor?: Color | null;
29
+ borderColorOpacity?: number | null;
30
+ borderStyle?: {
31
+ width: number;
32
+ rawWidth: number;
33
+ horizontalCornerRadius: number;
34
+ verticalCornerRadius: number;
35
+ dashArray: number[];
36
+ style: BorderStyle;
37
+ effect?: number;
38
+ effectIntensity?: number;
39
+ } | null;
40
+ titleObj: {
41
+ str: string;
42
+ dir: Dir;
43
+ };
44
+ popupRef?: string | null;
45
+ [key: string]: unknown;
46
+ }
47
+ export interface TextAnnotationData extends AnnotationData {
48
+ contentsObj: {
49
+ str: string;
50
+ dir: Dir;
51
+ };
52
+ }
53
+ export interface LinkAnnotationData extends AnnotationData {
54
+ subtype: 'Link';
55
+ url: string;
56
+ }
57
+ export interface FreeTextAnnotationData extends TextAnnotationData {
58
+ subtype: 'FreeText';
59
+ textContent: string[];
60
+ textPosition: [number, number];
61
+ calloutLine?: number[];
62
+ lineEnding?: LineEnding;
63
+ defaultAppearanceData?: {
64
+ fontColor: Color;
65
+ fontName: string;
66
+ fontSize: number;
67
+ };
68
+ }
69
+ export interface LineAnnotationData extends TextAnnotationData {
70
+ subtype: 'Line';
71
+ lineCoordinates: [number, number, number, number];
72
+ lineEndings: [LineEnding, LineEnding];
73
+ }
74
+ export interface SquareAnnotationData extends TextAnnotationData {
75
+ subtype: 'Square';
76
+ }
77
+ export interface CircleAnnotationData extends TextAnnotationData {
78
+ subtype: 'Circle';
79
+ }
80
+ export interface PolygonAnnotationData extends TextAnnotationData {
81
+ subtype: 'Polygon';
82
+ vertices: number[];
83
+ it?: string;
84
+ }
85
+ export interface PolylineAnnotationData extends TextAnnotationData {
86
+ subtype: 'Polyline';
87
+ vertices: number[];
88
+ lineEndings: [LineEnding, LineEnding];
89
+ it?: string;
90
+ }
91
+ export interface HighlightAnnotationData extends TextAnnotationData {
92
+ subtype: 'Highlight';
93
+ quadPoints: number[];
94
+ }
95
+ export interface UnderlineAnnotationData extends TextAnnotationData {
96
+ subtype: 'Underline';
97
+ quadPoints: number[];
98
+ }
99
+ export interface SquigglyAnnotationData extends TextAnnotationData {
100
+ subtype: 'Squiggly';
101
+ quadPoints: number[];
102
+ }
103
+ export interface StrikeOutAnnotationData extends TextAnnotationData {
104
+ subtype: 'StrikeOut';
105
+ quadPoints: number[];
106
+ }
107
+ export interface StampAnnotationData extends TextAnnotationData {
108
+ subtype: 'Stamp';
109
+ graphics: Uint8Array;
110
+ }
111
+ export interface CaretAnnotationData extends TextAnnotationData {
112
+ subtype: 'Caret';
113
+ }
114
+ export interface InkAnnotationData extends TextAnnotationData {
115
+ subtype: 'Ink';
116
+ inkLists: number[][];
117
+ }
118
+ export interface PopupAnnotationData extends TextAnnotationData {
119
+ subtype: 'Popup';
120
+ }
121
+ export interface FileAttachmentAnnotationData extends TextAnnotationData {
122
+ subtype: 'FileAttachment';
123
+ file: {
124
+ filename: string;
125
+ content?: Uint8Array | null;
126
+ };
127
+ }
128
+ export interface SoundAnnotationData extends TextAnnotationData {
129
+ subtype: 'Sound';
130
+ }
131
+ export interface MovieAnnotationData extends TextAnnotationData {
132
+ subtype: 'Movie';
133
+ }
134
+ export interface WidgetAnnotationData extends AnnotationData {
135
+ subtype: 'Widget';
136
+ fieldType: 'Tx' | 'Ch' | 'Btn';
137
+ fieldName: string;
138
+ defaultFieldValue?: string;
139
+ fieldValue?: string;
140
+ alternativeText?: string;
141
+ textPosition?: [number, number];
142
+ }
143
+ export interface TextWidgetAnnotationData extends WidgetAnnotationData {
144
+ fieldType: 'Tx';
145
+ maxLen?: number;
146
+ }
147
+ export interface ChoiceWidgetAnnotationData extends WidgetAnnotationData {
148
+ fieldType: 'Ch';
149
+ options?: {
150
+ exportValue: string;
151
+ displayValue: string;
152
+ }[];
153
+ }
154
+ export interface ButtonWidgetAnnotationData extends WidgetAnnotationData {
155
+ fieldType: 'Btn';
156
+ }
157
+ export interface ScreenAnnotationData extends AnnotationData {
158
+ subtype: 'Screen';
159
+ }
160
+ export interface PrinterMarkAnnotationData extends AnnotationData {
161
+ subtype: 'PrinterMark';
162
+ }
163
+ export interface TrapNetAnnotationData extends AnnotationData {
164
+ subtype: 'TrapNet';
165
+ }
166
+ export interface WatermarkAnnotationData extends AnnotationData {
167
+ subtype: 'Watermark';
168
+ }
169
+ export interface ThreeDAnnotationData extends AnnotationData {
170
+ subtype: '3D';
171
+ }
172
+ export interface RedactAnnotationData extends AnnotationData {
173
+ subtype: 'Redact';
174
+ }
175
+ export declare function isTextAnnotation(annotation: AnnotationData): annotation is TextAnnotationData;
176
+ export declare function isLinkAnnotation(annotation: AnnotationData): annotation is LinkAnnotationData;
177
+ export declare function isFreeTextAnnotation(annotation: AnnotationData): annotation is FreeTextAnnotationData;
178
+ export declare function isLineAnnotation(annotation: AnnotationData): annotation is LineAnnotationData;
179
+ export declare function isSquareAnnotation(annotation: AnnotationData): annotation is SquareAnnotationData;
180
+ export declare function isCircleAnnotation(annotation: AnnotationData): annotation is CircleAnnotationData;
181
+ export declare function isPolygonAnnotation(annotation: AnnotationData): annotation is PolygonAnnotationData;
182
+ export declare function isPolylineAnnotation(annotation: AnnotationData): annotation is PolylineAnnotationData;
183
+ export declare function isHighlightAnnotation(annotation: AnnotationData): annotation is HighlightAnnotationData;
184
+ export declare function isUnderlineAnnotation(annotation: AnnotationData): annotation is UnderlineAnnotationData;
185
+ export declare function isSquigglyAnnotation(annotation: AnnotationData): annotation is SquigglyAnnotationData;
186
+ export declare function isStrikeOutAnnotation(annotation: AnnotationData): annotation is StrikeOutAnnotationData;
187
+ export declare function isStampAnnotation(annotation: AnnotationData): annotation is StampAnnotationData;
188
+ export declare function isCaretAnnotation(annotation: AnnotationData): annotation is CaretAnnotationData;
189
+ export declare function isInkAnnotation(annotation: AnnotationData): annotation is InkAnnotationData;
190
+ export declare function isPopupAnnotation(annotation: AnnotationData): annotation is PopupAnnotationData;
191
+ export declare function isFileAttachmentAnnotation(annotation: AnnotationData): annotation is FileAttachmentAnnotationData;
192
+ export declare function isSoundAnnotation(annotation: AnnotationData): annotation is SoundAnnotationData;
193
+ export declare function isMovieAnnotation(annotation: AnnotationData): annotation is MovieAnnotationData;
194
+ export declare function isWidgetAnnotation(annotation: AnnotationData): annotation is WidgetAnnotationData;
195
+ export declare function isTextWidgetAnnotation(annotation: AnnotationData): annotation is TextWidgetAnnotationData;
196
+ export declare function isChoiceWidgetAnnotation(annotation: AnnotationData): annotation is ChoiceWidgetAnnotationData;
197
+ export declare function isButtonWidgetAnnotation(annotation: AnnotationData): annotation is ButtonWidgetAnnotationData;
198
+ export declare function isScreenAnnotation(annotation: AnnotationData): annotation is ScreenAnnotationData;
199
+ export declare function isPrinterMarkAnnotation(annotation: AnnotationData): annotation is PrinterMarkAnnotationData;
200
+ export declare function isTrapNetAnnotation(annotation: AnnotationData): annotation is TrapNetAnnotationData;
201
+ export declare function isWatermarkAnnotation(annotation: AnnotationData): annotation is WatermarkAnnotationData;
202
+ export declare function isThreeDAnnotation(annotation: AnnotationData): annotation is ThreeDAnnotationData;
203
+ export declare function isRedactAnnotation(annotation: AnnotationData): annotation is RedactAnnotationData;
204
+ export {};
@@ -0,0 +1,17 @@
1
+ declare const Path2DConstructor: {
2
+ new (path?: Path2D | string): Path2D;
3
+ prototype: Path2D;
4
+ };
5
+ /**
6
+ * Create a canvas for both the browser and Node.js.
7
+ * @param width The width of the canvas.
8
+ * @param height The height of the canvas.
9
+ * @returns A promise that resolves to the canvas.
10
+ */
11
+ export declare function createCanvas(width: number, height: number): Promise<HTMLCanvasElement>;
12
+ /**
13
+ * Load the fonts.
14
+ * @returns A promise that resolves when the fonts are loaded.
15
+ */
16
+ export declare function loadDefaultFonts(): Promise<void>;
17
+ export { Path2DConstructor as Path2D };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,72 @@
1
+ import { Path2D } from './Canvas';
2
+ export interface MoveToCommand {
3
+ type: 'moveTo';
4
+ args: {
5
+ x: number;
6
+ y: number;
7
+ };
8
+ }
9
+ export interface LineToCommand {
10
+ type: 'lineTo';
11
+ args: {
12
+ x: number;
13
+ y: number;
14
+ };
15
+ }
16
+ export interface ArcCommand {
17
+ type: 'arc';
18
+ args: {
19
+ x: number;
20
+ y: number;
21
+ radius: number;
22
+ startAngle: number;
23
+ endAngle: number;
24
+ anticlockwise: boolean;
25
+ };
26
+ }
27
+ export interface BezierCurveToCommand {
28
+ type: 'bezierCurveTo';
29
+ args: {
30
+ cp1x: number;
31
+ cp1y: number;
32
+ cp2x: number;
33
+ cp2y: number;
34
+ x: number;
35
+ y: number;
36
+ };
37
+ }
38
+ export interface QuadraticCurveToCommand {
39
+ type: 'quadraticCurveTo';
40
+ args: {
41
+ qx1: number;
42
+ qy1: number;
43
+ qx: number;
44
+ qy: number;
45
+ };
46
+ }
47
+ export interface ClosePathCommand {
48
+ type: 'closePath';
49
+ }
50
+ export type PathCommand = MoveToCommand | LineToCommand | ArcCommand | BezierCurveToCommand | QuadraticCurveToCommand | ClosePathCommand;
51
+ export declare function parseCommands(svgPath: string): PathCommand[];
52
+ export declare function commandToSvgPath(command: PathCommand): string;
53
+ export declare function transformPath(commands: PathCommand[], transform: DOMMatrix): PathCommand[];
54
+ export declare function calculateBoundingBox(commands: PathCommand[]): {
55
+ x: number;
56
+ y: number;
57
+ width: number;
58
+ height: number;
59
+ };
60
+ declare class SvgPath2D extends Path2D {
61
+ readonly commands: PathCommand[];
62
+ constructor(svgPath?: string);
63
+ moveTo(x: number, y: number): void;
64
+ lineTo(x: number, y: number): void;
65
+ arc(x: number, y: number, radius: number, startAngle: number, endAngle: number, anticlockwise?: boolean): void;
66
+ bezierCurveTo(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number): void;
67
+ quadraticCurveTo(qx1: number, qy1: number, qx: number, qy: number): void;
68
+ addPath(path: SvgPath2D, matrix?: DOMMatrix): void;
69
+ closePath(): void;
70
+ }
71
+ export declare function toCommands(path: SvgPath2D): string;
72
+ export { SvgPath2D as Path2D };
@@ -0,0 +1,14 @@
1
+ import { BaseStandardFontDataFactory } from '../pdf.js/src/display/standard_fontdata_factory';
2
+ /**
3
+ * A bundler-friendly StandardFontDataFactory implementation that fetches the standard font data using ES modules.
4
+ */
5
+ export declare class StandardFontDataFactory extends BaseStandardFontDataFactory {
6
+ constructor();
7
+ /**
8
+ * Fetch the corresponding standard font data.
9
+ * We need to use specific dynamic imports for each font file for the bundler to include them.
10
+ */
11
+ fetch({ filename }: {
12
+ filename: string;
13
+ }): Promise<Uint8Array>;
14
+ }
@@ -0,0 +1,156 @@
1
+ import { Path2D } from './Path2D';
2
+ interface CanvasStyle {
3
+ strokeStyle: string | SvgGradient | SvgPattern;
4
+ fillStyle: string | SvgGradient | SvgPattern;
5
+ fillRule: CanvasFillRule;
6
+ filter: string;
7
+ lineCap: CanvasLineCap;
8
+ lineJoin: CanvasLineJoin;
9
+ miterLimit: number;
10
+ lineWidth: number;
11
+ globalAlpha: number;
12
+ globalCompositeOperation: GlobalCompositeOperation;
13
+ font: string;
14
+ shadowColor: string;
15
+ shadowOffsetX: number;
16
+ shadowOffsetY: number;
17
+ shadowBlur: number;
18
+ textAlign: CanvasTextAlign;
19
+ textBaseline: CanvasTextBaseline;
20
+ lineDash: number[];
21
+ lineDashOffset: number;
22
+ }
23
+ declare class SvgPattern {
24
+ readonly src: string;
25
+ readonly width: number;
26
+ readonly height: number;
27
+ transform?: DOMMatrix;
28
+ constructor(src: string, width: number, height: number);
29
+ setTransform(matrix: DOMMatrix): void;
30
+ }
31
+ declare class SvgGradient {
32
+ readonly x1: number;
33
+ readonly y1: number;
34
+ readonly x2: number;
35
+ readonly y2: number;
36
+ readonly stops: {
37
+ offset: number;
38
+ color: string;
39
+ }[];
40
+ constructor(x1: number, y1: number, x2: number, y2: number);
41
+ addColorStop(offset: number, color: string): void;
42
+ }
43
+ export interface SvgNode {
44
+ tag: string;
45
+ attrs: Record<string, string | undefined>;
46
+ }
47
+ export interface SvgElement extends SvgNode {
48
+ children: SvgNode[];
49
+ }
50
+ export interface SvgRoot extends SvgElement {
51
+ tag: 'svg';
52
+ }
53
+ export interface SvgText extends SvgNode {
54
+ tag: 'text';
55
+ text: string;
56
+ }
57
+ export declare function isSvgElement(node: SvgNode): node is SvgElement;
58
+ export declare function isSvgText(node: SvgNode): node is SvgText;
59
+ export declare class SvgCanvasContext {
60
+ private _width;
61
+ private _height;
62
+ private _canvas;
63
+ private _ctx;
64
+ private _currentStyle;
65
+ private _styleStack;
66
+ private _groupStack;
67
+ private _transformMatrixStack;
68
+ private _root;
69
+ private _defs;
70
+ private _currentGroup;
71
+ private _currentElement;
72
+ private _transformMatrix;
73
+ private _currentPosition;
74
+ get canvas(): HTMLCanvasElement;
75
+ get fillStyle(): string;
76
+ set fillStyle(value: string);
77
+ get strokeStyle(): string;
78
+ set strokeStyle(value: string);
79
+ get fillRule(): string;
80
+ set fillRule(value: CanvasFillRule);
81
+ get filter(): string;
82
+ set filter(value: string);
83
+ get font(): string;
84
+ set font(value: string);
85
+ get globalAlpha(): number;
86
+ set globalAlpha(value: number);
87
+ get globalCompositeOperation(): GlobalCompositeOperation;
88
+ set globalCompositeOperation(value: GlobalCompositeOperation);
89
+ get imageSmoothingEnabled(): boolean;
90
+ set imageSmoothingEnabled(value: boolean);
91
+ get lineWidth(): number;
92
+ set lineWidth(value: number);
93
+ get lineCap(): CanvasLineCap;
94
+ set lineCap(value: CanvasLineCap);
95
+ get lineDashOffset(): number;
96
+ set lineDashOffset(value: number);
97
+ get lineJoin(): CanvasLineJoin;
98
+ set lineJoin(value: CanvasLineJoin);
99
+ get miterLimit(): number;
100
+ set miterLimit(value: number);
101
+ constructor(width: number, height: number, canvas: HTMLCanvasElement);
102
+ getNode(): SvgRoot;
103
+ resize(width: number, height: number): void;
104
+ save(): void;
105
+ restore(): void;
106
+ beginPath(): void;
107
+ closePath(): void;
108
+ moveTo(x: number, y: number): void;
109
+ lineTo(x: number, y: number): void;
110
+ bezierCurveTo(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number): void;
111
+ quadraticCurveTo(qx1: number, qy1: number, qx: number, qy: number): void;
112
+ arc(x: number, y: number, radius: number, startAngle: number, endAngle: number, anticlockwise?: boolean): void;
113
+ arcTo(x1: number, y1: number, x2: number, y2: number, radius: number): void;
114
+ rect(x: number, y: number, width: number, height: number): void;
115
+ ellipse(x: number, y: number, radiusX: number, radiusY: number, rotation: number, startAngle: number, endAngle: number, anticlockwise: boolean): void;
116
+ stroke(): void;
117
+ transform(...values: number[]): void;
118
+ translate(x: number, y: number): void;
119
+ scale(x: number, y: number): void;
120
+ fill(path?: Path2D, fillRule?: CanvasFillRule): void;
121
+ fillText(text: string, x: number, y: number): void;
122
+ fillRect(x: number, y: number, width: number, height: number): void;
123
+ getLineDash(): number[];
124
+ setLineDash(dashArray: number[]): void;
125
+ drawImage(image: CanvasImageSource, ...args: number[]): void;
126
+ createPattern(image: CanvasImageSource, repetition: 'repeat' | 'repeat-x' | 'repeat-y' | 'no-repeat' | null): SvgPattern;
127
+ createLinearGradient(x1: number, x2: number, y1: number, y2: number): SvgGradient;
128
+ clip(path: Path2D, fillRule: CanvasFillRule): void;
129
+ measureText(text: string): TextMetrics;
130
+ resetTransform(): void;
131
+ getTransform(): DOMMatrix;
132
+ setTransform(a: number, b: number, c: number, d: number, e: number, f: number): void;
133
+ protected _isTransformationGroup(node: SvgNode): boolean;
134
+ protected _ensureTransformationGroup(): SvgElement;
135
+ protected _applyStyleState(styleState: CanvasStyle): void;
136
+ protected _getStyleState(): CanvasStyle;
137
+ protected _getTransformScale(): {
138
+ x: number;
139
+ y: number;
140
+ };
141
+ protected _getTransformRotation(): number;
142
+ protected _matrixTransform(x: number, y: number): {
143
+ x: number;
144
+ y: number;
145
+ };
146
+ protected _applyTransformation(node: SvgNode, matrix?: DOMMatrix): void;
147
+ protected _createPatternNode(pattern: SvgPattern, transform?: DOMMatrix): SvgElement;
148
+ protected _createGradientNode(gradient: SvgGradient): SvgElement;
149
+ protected _applyStyle(currentElement: SvgNode, type: 'fill' | 'stroke'): void;
150
+ protected _addPathCommand(command: string): void;
151
+ protected _applyText(text: string, x: number, y: number, action: 'fill'): void;
152
+ protected _clearCanvas(): void;
153
+ }
154
+ export declare function createContext(width: number, height: number): Promise<CanvasRenderingContext2D>;
155
+ export declare function toSvgNode(ctx: CanvasRenderingContext2D): Promise<SvgRoot>;
156
+ export {};
@@ -0,0 +1,51 @@
1
+ import type { PDFPageProxy } from '../pdf.js/src/display/api';
2
+ import type { BaseCanvasFactory } from '../pdf.js/src/display/canvas_factory';
3
+ import type { PageViewport } from '../pdf.js/src/display/display_utils';
4
+ import { type AnnotationData } from './AnnotationData';
5
+ export interface TextLayerNode {
6
+ id?: string;
7
+ role: string;
8
+ }
9
+ export interface TextLayerElement extends TextLayerNode {
10
+ children: (string | TextLayerNode)[];
11
+ }
12
+ export interface TextLayerRoot extends TextLayerElement {
13
+ width: number;
14
+ height: number;
15
+ }
16
+ export interface TextLayerAnchor extends TextLayerElement {
17
+ role: 'a';
18
+ href: string;
19
+ }
20
+ export interface TextLayerText extends TextLayerNode {
21
+ role: 'text';
22
+ text: string;
23
+ hyphen?: boolean;
24
+ top: number;
25
+ left: number;
26
+ fontSize: number;
27
+ fontFamily: string;
28
+ fontFallback: string;
29
+ dir: string;
30
+ scale: number;
31
+ angle: number;
32
+ }
33
+ export interface TextLayerImage extends TextLayerNode {
34
+ role: 'img';
35
+ src: string;
36
+ }
37
+ export declare function isTextNode(node: TextLayerNode): node is TextLayerText;
38
+ export declare function isAnchorNode(node: TextLayerNode): node is TextLayerAnchor;
39
+ export declare function isImageNode(node: TextLayerNode): node is TextLayerImage;
40
+ /**
41
+ * Get the default font family.
42
+ * @param type The font type.
43
+ * @returns The default font family.
44
+ */
45
+ export declare function getDefaultFontFamily(type: string): string;
46
+ export declare function createTextLayer(page: PDFPageProxy, { canvasFactory, viewport, outputScale, annotations, }: {
47
+ canvasFactory: BaseCanvasFactory;
48
+ viewport?: PageViewport;
49
+ outputScale?: number;
50
+ annotations?: AnnotationData[];
51
+ }): Promise<TextLayerRoot>;
File without changes
@@ -0,0 +1,13 @@
1
+ import type { Canvas } from '@napi-rs/canvas';
2
+ /**
3
+ * Convert a canvas to a buffer.
4
+ * @param canvas The canvas to convert.
5
+ * @returns A promise that resolves to the buffer.
6
+ */
7
+ export declare function canvasToData(canvas: HTMLCanvasElement | Canvas): Promise<Uint8Array>;
8
+ /**
9
+ * Convert a buffer to a data url.
10
+ * @param data The buffer to convert.
11
+ * @returns A promise that resolves to the data url.
12
+ */
13
+ export declare function toDataUrl(data: Uint8Array): Promise<string>;
@@ -0,0 +1,9 @@
1
+ import {
2
+ __toBinaryNode
3
+ } from "./chunk-7MW5RQZ5.js";
4
+
5
+ // src/pdf.js/external/standard_fonts/FoxitDingbats.pfb
6
+ var FoxitDingbats_default = __toBinaryNode("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");
7
+ export {
8
+ FoxitDingbats_default as default
9
+ };