@lexmata/micropdf 0.4.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/LICENSE +191 -0
- package/README.md +985 -0
- package/binding.gyp +73 -0
- package/dist/annot.d.ts +458 -0
- package/dist/annot.d.ts.map +1 -0
- package/dist/annot.js +697 -0
- package/dist/annot.js.map +1 -0
- package/dist/archive.d.ts +128 -0
- package/dist/archive.d.ts.map +1 -0
- package/dist/archive.js +268 -0
- package/dist/archive.js.map +1 -0
- package/dist/buffer.d.ts +572 -0
- package/dist/buffer.d.ts.map +1 -0
- package/dist/buffer.js +971 -0
- package/dist/buffer.js.map +1 -0
- package/dist/colorspace.d.ts +287 -0
- package/dist/colorspace.d.ts.map +1 -0
- package/dist/colorspace.js +542 -0
- package/dist/colorspace.js.map +1 -0
- package/dist/context.d.ts +184 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +320 -0
- package/dist/context.js.map +1 -0
- package/dist/cookie.d.ts +164 -0
- package/dist/cookie.d.ts.map +1 -0
- package/dist/cookie.js +306 -0
- package/dist/cookie.js.map +1 -0
- package/dist/device.d.ts +169 -0
- package/dist/device.d.ts.map +1 -0
- package/dist/device.js +350 -0
- package/dist/device.js.map +1 -0
- package/dist/display-list.d.ts +202 -0
- package/dist/display-list.d.ts.map +1 -0
- package/dist/display-list.js +410 -0
- package/dist/display-list.js.map +1 -0
- package/dist/document.d.ts +637 -0
- package/dist/document.d.ts.map +1 -0
- package/dist/document.js +902 -0
- package/dist/document.js.map +1 -0
- package/dist/easy.d.ts +423 -0
- package/dist/easy.d.ts.map +1 -0
- package/dist/easy.js +644 -0
- package/dist/easy.js.map +1 -0
- package/dist/enhanced.d.ts +226 -0
- package/dist/enhanced.d.ts.map +1 -0
- package/dist/enhanced.js +368 -0
- package/dist/enhanced.js.map +1 -0
- package/dist/filter.d.ts +51 -0
- package/dist/filter.d.ts.map +1 -0
- package/dist/filter.js +381 -0
- package/dist/filter.js.map +1 -0
- package/dist/font.d.ts +222 -0
- package/dist/font.d.ts.map +1 -0
- package/dist/font.js +381 -0
- package/dist/font.js.map +1 -0
- package/dist/form.d.ts +214 -0
- package/dist/form.d.ts.map +1 -0
- package/dist/form.js +497 -0
- package/dist/form.js.map +1 -0
- package/dist/geometry.d.ts +469 -0
- package/dist/geometry.d.ts.map +1 -0
- package/dist/geometry.js +780 -0
- package/dist/geometry.js.map +1 -0
- package/dist/image.d.ts +172 -0
- package/dist/image.d.ts.map +1 -0
- package/dist/image.js +348 -0
- package/dist/image.js.map +1 -0
- package/dist/index.d.ts +171 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +339 -0
- package/dist/index.js.map +1 -0
- package/dist/link.d.ts +168 -0
- package/dist/link.d.ts.map +1 -0
- package/dist/link.js +343 -0
- package/dist/link.js.map +1 -0
- package/dist/micropdf.d.ts +40 -0
- package/dist/micropdf.d.ts.map +1 -0
- package/dist/micropdf.js +45 -0
- package/dist/micropdf.js.map +1 -0
- package/dist/nanopdf.d.ts +40 -0
- package/dist/nanopdf.d.ts.map +1 -0
- package/dist/nanopdf.js +45 -0
- package/dist/nanopdf.js.map +1 -0
- package/dist/native.d.ts +242 -0
- package/dist/native.d.ts.map +1 -0
- package/dist/native.js +509 -0
- package/dist/native.js.map +1 -0
- package/dist/output.d.ts +166 -0
- package/dist/output.d.ts.map +1 -0
- package/dist/output.js +365 -0
- package/dist/output.js.map +1 -0
- package/dist/path.d.ts +420 -0
- package/dist/path.d.ts.map +1 -0
- package/dist/path.js +687 -0
- package/dist/path.js.map +1 -0
- package/dist/pdf/object.d.ts +489 -0
- package/dist/pdf/object.d.ts.map +1 -0
- package/dist/pdf/object.js +1045 -0
- package/dist/pdf/object.js.map +1 -0
- package/dist/pixmap.d.ts +315 -0
- package/dist/pixmap.d.ts.map +1 -0
- package/dist/pixmap.js +590 -0
- package/dist/pixmap.js.map +1 -0
- package/dist/profiler.d.ts +159 -0
- package/dist/profiler.d.ts.map +1 -0
- package/dist/profiler.js +380 -0
- package/dist/profiler.js.map +1 -0
- package/dist/render-options.d.ts +227 -0
- package/dist/render-options.d.ts.map +1 -0
- package/dist/render-options.js +130 -0
- package/dist/render-options.js.map +1 -0
- package/dist/resource-tracking.d.ts +332 -0
- package/dist/resource-tracking.d.ts.map +1 -0
- package/dist/resource-tracking.js +653 -0
- package/dist/resource-tracking.js.map +1 -0
- package/dist/simple.d.ts +276 -0
- package/dist/simple.d.ts.map +1 -0
- package/dist/simple.js +343 -0
- package/dist/simple.js.map +1 -0
- package/dist/stext.d.ts +290 -0
- package/dist/stext.d.ts.map +1 -0
- package/dist/stext.js +312 -0
- package/dist/stext.js.map +1 -0
- package/dist/stream.d.ts +174 -0
- package/dist/stream.d.ts.map +1 -0
- package/dist/stream.js +476 -0
- package/dist/stream.js.map +1 -0
- package/dist/text.d.ts +337 -0
- package/dist/text.d.ts.map +1 -0
- package/dist/text.js +454 -0
- package/dist/text.js.map +1 -0
- package/dist/typed-arrays.d.ts +127 -0
- package/dist/typed-arrays.d.ts.map +1 -0
- package/dist/typed-arrays.js +410 -0
- package/dist/typed-arrays.js.map +1 -0
- package/dist/types.d.ts +358 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +216 -0
- package/dist/types.js.map +1 -0
- package/native/annot.cc +557 -0
- package/native/buffer.cc +204 -0
- package/native/colorspace.cc +166 -0
- package/native/context.cc +84 -0
- package/native/cookie.cc +179 -0
- package/native/device.cc +179 -0
- package/native/display_list.cc +179 -0
- package/native/document.cc +268 -0
- package/native/enhanced.cc +70 -0
- package/native/font.cc +282 -0
- package/native/form.cc +523 -0
- package/native/geometry.cc +255 -0
- package/native/image.cc +216 -0
- package/native/include/micropdf/enhanced.h +38 -0
- package/native/include/micropdf/types.h +36 -0
- package/native/include/micropdf.h +106 -0
- package/native/include/mupdf-ffi.h +39 -0
- package/native/include/mupdf.h +11 -0
- package/native/include/mupdf_minimal.h +381 -0
- package/native/lib/linux-x64/libmicropdf.a +0 -0
- package/native/link.cc +234 -0
- package/native/micropdf.cc +71 -0
- package/native/output.cc +229 -0
- package/native/page.cc +572 -0
- package/native/path.cc +259 -0
- package/native/pixmap.cc +240 -0
- package/native/stext.cc +610 -0
- package/native/stream.cc +239 -0
- package/package.json +120 -0
- package/scripts/build-from-rust.js +97 -0
- package/scripts/install.js +184 -0
package/dist/link.d.ts
ADDED
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Link - PDF hyperlink and navigation
|
|
3
|
+
*
|
|
4
|
+
* This module provides 100% API compatibility with MuPDF's link operations.
|
|
5
|
+
* Handles hyperlinks, page navigation, and external URIs.
|
|
6
|
+
*/
|
|
7
|
+
import { Rect, type RectLike, type PointLike } from './geometry.js';
|
|
8
|
+
/**
|
|
9
|
+
* Link destination types
|
|
10
|
+
*/
|
|
11
|
+
export declare enum LinkDestinationType {
|
|
12
|
+
URI = 0,// External URI
|
|
13
|
+
Page = 1,// Internal page number
|
|
14
|
+
XYZ = 2,// Go to position on page
|
|
15
|
+
Fit = 3,// Fit page to window
|
|
16
|
+
FitH = 4,// Fit horizontally
|
|
17
|
+
FitV = 5,// Fit vertically
|
|
18
|
+
FitR = 6,// Fit rectangle
|
|
19
|
+
FitB = 7,// Fit bounding box
|
|
20
|
+
FitBH = 8,// Fit bounding box horizontally
|
|
21
|
+
FitBV = 9
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* A PDF hyperlink
|
|
25
|
+
*/
|
|
26
|
+
export declare class Link {
|
|
27
|
+
private _rect;
|
|
28
|
+
private _uri;
|
|
29
|
+
private _pageNumber;
|
|
30
|
+
private _refCount;
|
|
31
|
+
private _destType;
|
|
32
|
+
constructor(rect: RectLike, uri?: string, pageNumber?: number);
|
|
33
|
+
/**
|
|
34
|
+
* Create a new link
|
|
35
|
+
*/
|
|
36
|
+
static create(rect: RectLike, uri?: string, pageNumber?: number): Link;
|
|
37
|
+
/**
|
|
38
|
+
* Create a URI link
|
|
39
|
+
*/
|
|
40
|
+
static createURI(rect: RectLike, uri: string): Link;
|
|
41
|
+
/**
|
|
42
|
+
* Create a page link
|
|
43
|
+
*/
|
|
44
|
+
static createPage(rect: RectLike, pageNumber: number): Link;
|
|
45
|
+
keep(): this;
|
|
46
|
+
drop(): void;
|
|
47
|
+
/**
|
|
48
|
+
* Clone this link
|
|
49
|
+
*/
|
|
50
|
+
clone(): Link;
|
|
51
|
+
get rect(): Rect;
|
|
52
|
+
set rect(r: RectLike);
|
|
53
|
+
get uri(): string;
|
|
54
|
+
set uri(uri: string);
|
|
55
|
+
get pageNumber(): number;
|
|
56
|
+
/**
|
|
57
|
+
* Check if link is external (URI)
|
|
58
|
+
*/
|
|
59
|
+
isExternal(): boolean;
|
|
60
|
+
/**
|
|
61
|
+
* Check if link is a page link
|
|
62
|
+
*/
|
|
63
|
+
isPageLink(): boolean;
|
|
64
|
+
/**
|
|
65
|
+
* Get destination type
|
|
66
|
+
*/
|
|
67
|
+
get destinationType(): LinkDestinationType;
|
|
68
|
+
/**
|
|
69
|
+
* Check if link is valid
|
|
70
|
+
*/
|
|
71
|
+
isValid(): boolean;
|
|
72
|
+
/**
|
|
73
|
+
* Check if two links are equal
|
|
74
|
+
*/
|
|
75
|
+
equals(other: Link): boolean;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* A list of links for a page
|
|
79
|
+
*/
|
|
80
|
+
export declare class LinkList {
|
|
81
|
+
private _links;
|
|
82
|
+
constructor();
|
|
83
|
+
/**
|
|
84
|
+
* Create a new link list
|
|
85
|
+
*/
|
|
86
|
+
static create(): LinkList;
|
|
87
|
+
/**
|
|
88
|
+
* Clone this link list
|
|
89
|
+
*/
|
|
90
|
+
clone(): LinkList;
|
|
91
|
+
/**
|
|
92
|
+
* Add a link to the list
|
|
93
|
+
*/
|
|
94
|
+
add(link: Link): void;
|
|
95
|
+
/**
|
|
96
|
+
* Count number of links
|
|
97
|
+
*/
|
|
98
|
+
count(): number;
|
|
99
|
+
/**
|
|
100
|
+
* Check if list is empty
|
|
101
|
+
*/
|
|
102
|
+
isEmpty(): boolean;
|
|
103
|
+
/**
|
|
104
|
+
* Get first link
|
|
105
|
+
*/
|
|
106
|
+
first(): Link | undefined;
|
|
107
|
+
/**
|
|
108
|
+
* Get link by index
|
|
109
|
+
*/
|
|
110
|
+
get(index: number): Link | undefined;
|
|
111
|
+
/**
|
|
112
|
+
* Get all links
|
|
113
|
+
*/
|
|
114
|
+
getAll(): Link[];
|
|
115
|
+
/**
|
|
116
|
+
* Find link at a point
|
|
117
|
+
*/
|
|
118
|
+
findAtPoint(point: PointLike): Link | undefined;
|
|
119
|
+
/**
|
|
120
|
+
* Find all links at a point
|
|
121
|
+
*/
|
|
122
|
+
findAllAtPoint(point: PointLike): Link[];
|
|
123
|
+
/**
|
|
124
|
+
* Find links in a rect
|
|
125
|
+
*/
|
|
126
|
+
findInRect(rect: RectLike): Link[];
|
|
127
|
+
/**
|
|
128
|
+
* Clear all links
|
|
129
|
+
*/
|
|
130
|
+
clear(): void;
|
|
131
|
+
/**
|
|
132
|
+
* Remove a specific link
|
|
133
|
+
*/
|
|
134
|
+
remove(link: Link): boolean;
|
|
135
|
+
/**
|
|
136
|
+
* Remove link at index
|
|
137
|
+
*/
|
|
138
|
+
removeAt(index: number): boolean;
|
|
139
|
+
/**
|
|
140
|
+
* Get all external (URI) links
|
|
141
|
+
*/
|
|
142
|
+
getExternalLinks(): Link[];
|
|
143
|
+
/**
|
|
144
|
+
* Get all page links
|
|
145
|
+
*/
|
|
146
|
+
getPageLinks(): Link[];
|
|
147
|
+
/**
|
|
148
|
+
* Get links by page number
|
|
149
|
+
*/
|
|
150
|
+
getLinksToPage(pageNumber: number): Link[];
|
|
151
|
+
/**
|
|
152
|
+
* Iterate over links
|
|
153
|
+
*/
|
|
154
|
+
[Symbol.iterator](): Generator<Link>;
|
|
155
|
+
/**
|
|
156
|
+
* For each link
|
|
157
|
+
*/
|
|
158
|
+
forEach(callback: (link: Link, index: number) => void): void;
|
|
159
|
+
/**
|
|
160
|
+
* Map links
|
|
161
|
+
*/
|
|
162
|
+
map<T>(callback: (link: Link, index: number) => T): T[];
|
|
163
|
+
/**
|
|
164
|
+
* Filter links
|
|
165
|
+
*/
|
|
166
|
+
filter(predicate: (link: Link, index: number) => boolean): Link[];
|
|
167
|
+
}
|
|
168
|
+
//# sourceMappingURL=link.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"link.d.ts","sourceRoot":"","sources":["../src/link.ts"],"names":[],"mappings":"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"}
|
package/dist/link.js
ADDED
|
@@ -0,0 +1,343 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Link - PDF hyperlink and navigation
|
|
3
|
+
*
|
|
4
|
+
* This module provides 100% API compatibility with MuPDF's link operations.
|
|
5
|
+
* Handles hyperlinks, page navigation, and external URIs.
|
|
6
|
+
*/
|
|
7
|
+
import { Rect, Point } from './geometry.js';
|
|
8
|
+
/**
|
|
9
|
+
* Link destination types
|
|
10
|
+
*/
|
|
11
|
+
export var LinkDestinationType;
|
|
12
|
+
(function (LinkDestinationType) {
|
|
13
|
+
LinkDestinationType[LinkDestinationType["URI"] = 0] = "URI";
|
|
14
|
+
LinkDestinationType[LinkDestinationType["Page"] = 1] = "Page";
|
|
15
|
+
LinkDestinationType[LinkDestinationType["XYZ"] = 2] = "XYZ";
|
|
16
|
+
LinkDestinationType[LinkDestinationType["Fit"] = 3] = "Fit";
|
|
17
|
+
LinkDestinationType[LinkDestinationType["FitH"] = 4] = "FitH";
|
|
18
|
+
LinkDestinationType[LinkDestinationType["FitV"] = 5] = "FitV";
|
|
19
|
+
LinkDestinationType[LinkDestinationType["FitR"] = 6] = "FitR";
|
|
20
|
+
LinkDestinationType[LinkDestinationType["FitB"] = 7] = "FitB";
|
|
21
|
+
LinkDestinationType[LinkDestinationType["FitBH"] = 8] = "FitBH";
|
|
22
|
+
LinkDestinationType[LinkDestinationType["FitBV"] = 9] = "FitBV"; // Fit bounding box vertically
|
|
23
|
+
})(LinkDestinationType || (LinkDestinationType = {}));
|
|
24
|
+
/**
|
|
25
|
+
* A PDF hyperlink
|
|
26
|
+
*/
|
|
27
|
+
export class Link {
|
|
28
|
+
_rect;
|
|
29
|
+
_uri = '';
|
|
30
|
+
_pageNumber = -1;
|
|
31
|
+
_refCount = 1;
|
|
32
|
+
_destType = LinkDestinationType.URI;
|
|
33
|
+
constructor(rect, uri, pageNumber) {
|
|
34
|
+
this._rect = Rect.from(rect);
|
|
35
|
+
if (uri !== undefined) {
|
|
36
|
+
this._uri = uri;
|
|
37
|
+
this._destType = LinkDestinationType.URI;
|
|
38
|
+
}
|
|
39
|
+
else if (pageNumber !== undefined) {
|
|
40
|
+
this._pageNumber = pageNumber;
|
|
41
|
+
this._destType = LinkDestinationType.Page;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Create a new link
|
|
46
|
+
*/
|
|
47
|
+
static create(rect, uri, pageNumber) {
|
|
48
|
+
return new Link(rect, uri, pageNumber);
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Create a URI link
|
|
52
|
+
*/
|
|
53
|
+
static createURI(rect, uri) {
|
|
54
|
+
return new Link(rect, uri);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Create a page link
|
|
58
|
+
*/
|
|
59
|
+
static createPage(rect, pageNumber) {
|
|
60
|
+
return new Link(rect, undefined, pageNumber);
|
|
61
|
+
}
|
|
62
|
+
// ============================================================================
|
|
63
|
+
// Reference Counting
|
|
64
|
+
// ============================================================================
|
|
65
|
+
keep() {
|
|
66
|
+
this._refCount++;
|
|
67
|
+
return this;
|
|
68
|
+
}
|
|
69
|
+
drop() {
|
|
70
|
+
if (this._refCount > 0) {
|
|
71
|
+
this._refCount--;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Clone this link
|
|
76
|
+
*/
|
|
77
|
+
clone() {
|
|
78
|
+
const cloned = new Link(this._rect, this._uri, this._pageNumber);
|
|
79
|
+
cloned._destType = this._destType;
|
|
80
|
+
return cloned;
|
|
81
|
+
}
|
|
82
|
+
// ============================================================================
|
|
83
|
+
// Properties
|
|
84
|
+
// ============================================================================
|
|
85
|
+
get rect() {
|
|
86
|
+
return this._rect;
|
|
87
|
+
}
|
|
88
|
+
set rect(r) {
|
|
89
|
+
this._rect = Rect.from(r);
|
|
90
|
+
}
|
|
91
|
+
get uri() {
|
|
92
|
+
return this._uri;
|
|
93
|
+
}
|
|
94
|
+
set uri(uri) {
|
|
95
|
+
this._uri = uri;
|
|
96
|
+
this._destType = LinkDestinationType.URI;
|
|
97
|
+
this._pageNumber = -1;
|
|
98
|
+
}
|
|
99
|
+
get pageNumber() {
|
|
100
|
+
return this._pageNumber;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Check if link is external (URI)
|
|
104
|
+
*/
|
|
105
|
+
isExternal() {
|
|
106
|
+
return this._destType === LinkDestinationType.URI && this._uri.length > 0;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Check if link is a page link
|
|
110
|
+
*/
|
|
111
|
+
isPageLink() {
|
|
112
|
+
return this._destType === LinkDestinationType.Page && this._pageNumber >= 0;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Get destination type
|
|
116
|
+
*/
|
|
117
|
+
get destinationType() {
|
|
118
|
+
return this._destType;
|
|
119
|
+
}
|
|
120
|
+
// ============================================================================
|
|
121
|
+
// Validation
|
|
122
|
+
// ============================================================================
|
|
123
|
+
/**
|
|
124
|
+
* Check if link is valid
|
|
125
|
+
*/
|
|
126
|
+
isValid() {
|
|
127
|
+
if (this._rect.isEmpty) {
|
|
128
|
+
return false;
|
|
129
|
+
}
|
|
130
|
+
if (this._destType === LinkDestinationType.URI && this._uri.length === 0) {
|
|
131
|
+
return false;
|
|
132
|
+
}
|
|
133
|
+
if (this._destType === LinkDestinationType.Page && this._pageNumber < 0) {
|
|
134
|
+
return false;
|
|
135
|
+
}
|
|
136
|
+
return true;
|
|
137
|
+
}
|
|
138
|
+
// ============================================================================
|
|
139
|
+
// Comparison
|
|
140
|
+
// ============================================================================
|
|
141
|
+
/**
|
|
142
|
+
* Check if two links are equal
|
|
143
|
+
*/
|
|
144
|
+
equals(other) {
|
|
145
|
+
if (!this._rect.equals(other._rect)) {
|
|
146
|
+
return false;
|
|
147
|
+
}
|
|
148
|
+
if (this._destType !== other._destType) {
|
|
149
|
+
return false;
|
|
150
|
+
}
|
|
151
|
+
if (this._destType === LinkDestinationType.URI) {
|
|
152
|
+
return this._uri === other._uri;
|
|
153
|
+
}
|
|
154
|
+
if (this._destType === LinkDestinationType.Page) {
|
|
155
|
+
return this._pageNumber === other._pageNumber;
|
|
156
|
+
}
|
|
157
|
+
return true;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* A list of links for a page
|
|
162
|
+
*/
|
|
163
|
+
export class LinkList {
|
|
164
|
+
_links = [];
|
|
165
|
+
constructor() { }
|
|
166
|
+
/**
|
|
167
|
+
* Create a new link list
|
|
168
|
+
*/
|
|
169
|
+
static create() {
|
|
170
|
+
return new LinkList();
|
|
171
|
+
}
|
|
172
|
+
// ============================================================================
|
|
173
|
+
// Reference Counting
|
|
174
|
+
// ============================================================================
|
|
175
|
+
/**
|
|
176
|
+
* Clone this link list
|
|
177
|
+
*/
|
|
178
|
+
clone() {
|
|
179
|
+
const cloned = new LinkList();
|
|
180
|
+
cloned._links = this._links.map((link) => link.clone());
|
|
181
|
+
return cloned;
|
|
182
|
+
}
|
|
183
|
+
// ============================================================================
|
|
184
|
+
// Link Management
|
|
185
|
+
// ============================================================================
|
|
186
|
+
/**
|
|
187
|
+
* Add a link to the list
|
|
188
|
+
*/
|
|
189
|
+
add(link) {
|
|
190
|
+
this._links.push(link);
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Count number of links
|
|
194
|
+
*/
|
|
195
|
+
count() {
|
|
196
|
+
return this._links.length;
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Check if list is empty
|
|
200
|
+
*/
|
|
201
|
+
isEmpty() {
|
|
202
|
+
return this._links.length === 0;
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Get first link
|
|
206
|
+
*/
|
|
207
|
+
first() {
|
|
208
|
+
return this._links[0];
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Get link by index
|
|
212
|
+
*/
|
|
213
|
+
get(index) {
|
|
214
|
+
if (index < 0 || index >= this._links.length) {
|
|
215
|
+
return undefined;
|
|
216
|
+
}
|
|
217
|
+
return this._links[index];
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Get all links
|
|
221
|
+
*/
|
|
222
|
+
getAll() {
|
|
223
|
+
return [...this._links];
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Find link at a point
|
|
227
|
+
*/
|
|
228
|
+
findAtPoint(point) {
|
|
229
|
+
const p = Point.from(point);
|
|
230
|
+
for (const link of this._links) {
|
|
231
|
+
if (link.rect.containsPoint(p)) {
|
|
232
|
+
return link;
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
return undefined;
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Find all links at a point
|
|
239
|
+
*/
|
|
240
|
+
findAllAtPoint(point) {
|
|
241
|
+
const p = Point.from(point);
|
|
242
|
+
const results = [];
|
|
243
|
+
for (const link of this._links) {
|
|
244
|
+
if (link.rect.containsPoint(p)) {
|
|
245
|
+
results.push(link);
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
return results;
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* Find links in a rect
|
|
252
|
+
*/
|
|
253
|
+
findInRect(rect) {
|
|
254
|
+
const r = Rect.from(rect);
|
|
255
|
+
const results = [];
|
|
256
|
+
for (const link of this._links) {
|
|
257
|
+
// Check if rectangles intersect by seeing if they don't *not* intersect
|
|
258
|
+
const intersection = link.rect.intersect(r);
|
|
259
|
+
if (!intersection.isEmpty) {
|
|
260
|
+
results.push(link);
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
return results;
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* Clear all links
|
|
267
|
+
*/
|
|
268
|
+
clear() {
|
|
269
|
+
this._links = [];
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* Remove a specific link
|
|
273
|
+
*/
|
|
274
|
+
remove(link) {
|
|
275
|
+
const index = this._links.indexOf(link);
|
|
276
|
+
if (index >= 0) {
|
|
277
|
+
this._links.splice(index, 1);
|
|
278
|
+
return true;
|
|
279
|
+
}
|
|
280
|
+
return false;
|
|
281
|
+
}
|
|
282
|
+
/**
|
|
283
|
+
* Remove link at index
|
|
284
|
+
*/
|
|
285
|
+
removeAt(index) {
|
|
286
|
+
if (index >= 0 && index < this._links.length) {
|
|
287
|
+
this._links.splice(index, 1);
|
|
288
|
+
return true;
|
|
289
|
+
}
|
|
290
|
+
return false;
|
|
291
|
+
}
|
|
292
|
+
// ============================================================================
|
|
293
|
+
// Filtering
|
|
294
|
+
// ============================================================================
|
|
295
|
+
/**
|
|
296
|
+
* Get all external (URI) links
|
|
297
|
+
*/
|
|
298
|
+
getExternalLinks() {
|
|
299
|
+
return this._links.filter((link) => link.isExternal());
|
|
300
|
+
}
|
|
301
|
+
/**
|
|
302
|
+
* Get all page links
|
|
303
|
+
*/
|
|
304
|
+
getPageLinks() {
|
|
305
|
+
return this._links.filter((link) => link.isPageLink());
|
|
306
|
+
}
|
|
307
|
+
/**
|
|
308
|
+
* Get links by page number
|
|
309
|
+
*/
|
|
310
|
+
getLinksToPage(pageNumber) {
|
|
311
|
+
return this._links.filter((link) => link.isPageLink() && link.pageNumber === pageNumber);
|
|
312
|
+
}
|
|
313
|
+
// ============================================================================
|
|
314
|
+
// Iteration
|
|
315
|
+
// ============================================================================
|
|
316
|
+
/**
|
|
317
|
+
* Iterate over links
|
|
318
|
+
*/
|
|
319
|
+
*[Symbol.iterator]() {
|
|
320
|
+
for (const link of this._links) {
|
|
321
|
+
yield link;
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
/**
|
|
325
|
+
* For each link
|
|
326
|
+
*/
|
|
327
|
+
forEach(callback) {
|
|
328
|
+
this._links.forEach(callback);
|
|
329
|
+
}
|
|
330
|
+
/**
|
|
331
|
+
* Map links
|
|
332
|
+
*/
|
|
333
|
+
map(callback) {
|
|
334
|
+
return this._links.map(callback);
|
|
335
|
+
}
|
|
336
|
+
/**
|
|
337
|
+
* Filter links
|
|
338
|
+
*/
|
|
339
|
+
filter(predicate) {
|
|
340
|
+
return this._links.filter(predicate);
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
//# sourceMappingURL=link.js.map
|
package/dist/link.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"link.js","sourceRoot":"","sources":["../src/link.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MicroPDF - Main API
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Options for MicroPDF initialization
|
|
6
|
+
*/
|
|
7
|
+
export interface MicroPDFOptions {
|
|
8
|
+
/**
|
|
9
|
+
* Whether to allow mock implementation when native addon is not available
|
|
10
|
+
* @default true
|
|
11
|
+
*/
|
|
12
|
+
allowMock?: boolean;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Get the MicroPDF library version
|
|
16
|
+
*/
|
|
17
|
+
export declare function getVersion(): string;
|
|
18
|
+
/**
|
|
19
|
+
* Main MicroPDF class
|
|
20
|
+
*/
|
|
21
|
+
export declare class MicroPDF {
|
|
22
|
+
private static initialized;
|
|
23
|
+
/**
|
|
24
|
+
* Initialize MicroPDF
|
|
25
|
+
*/
|
|
26
|
+
static init(options?: MicroPDFOptions): void;
|
|
27
|
+
/**
|
|
28
|
+
* Check if MicroPDF is using the mock implementation
|
|
29
|
+
*/
|
|
30
|
+
static get isMock(): boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Get the library version
|
|
33
|
+
*/
|
|
34
|
+
static get version(): string;
|
|
35
|
+
/**
|
|
36
|
+
* Check if initialized
|
|
37
|
+
*/
|
|
38
|
+
static get isInitialized(): boolean;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=micropdf.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"micropdf.d.ts","sourceRoot":"","sources":["../src/micropdf.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED;;GAEG;AACH,qBAAa,QAAQ;IACnB,OAAO,CAAC,MAAM,CAAC,WAAW,CAAS;IAEnC;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,OAAO,GAAE,eAAoB,GAAG,IAAI;IAYhD;;OAEG;IACH,MAAM,KAAK,MAAM,IAAI,OAAO,CAE3B;IAED;;OAEG;IACH,MAAM,KAAK,OAAO,IAAI,MAAM,CAE3B;IAED;;OAEG;IACH,MAAM,KAAK,aAAa,IAAI,OAAO,CAElC;CACF"}
|
package/dist/micropdf.js
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MicroPDF - Main API
|
|
3
|
+
*/
|
|
4
|
+
import { native_addon, isMock } from './native.js';
|
|
5
|
+
/**
|
|
6
|
+
* Get the MicroPDF library version
|
|
7
|
+
*/
|
|
8
|
+
export function getVersion() {
|
|
9
|
+
return native_addon.getVersion();
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Main MicroPDF class
|
|
13
|
+
*/
|
|
14
|
+
export class MicroPDF {
|
|
15
|
+
static initialized = false;
|
|
16
|
+
/**
|
|
17
|
+
* Initialize MicroPDF
|
|
18
|
+
*/
|
|
19
|
+
static init(options = {}) {
|
|
20
|
+
const { allowMock = true } = options;
|
|
21
|
+
if (isMock && !allowMock) {
|
|
22
|
+
throw new Error('MicroPDF native addon not found. Install native dependencies or set allowMock: true');
|
|
23
|
+
}
|
|
24
|
+
MicroPDF.initialized = true;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Check if MicroPDF is using the mock implementation
|
|
28
|
+
*/
|
|
29
|
+
static get isMock() {
|
|
30
|
+
return isMock;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Get the library version
|
|
34
|
+
*/
|
|
35
|
+
static get version() {
|
|
36
|
+
return getVersion();
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Check if initialized
|
|
40
|
+
*/
|
|
41
|
+
static get isInitialized() {
|
|
42
|
+
return MicroPDF.initialized;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=micropdf.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"micropdf.js","sourceRoot":"","sources":["../src/micropdf.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAanD;;GAEG;AACH,MAAM,UAAU,UAAU;IACxB,OAAO,YAAY,CAAC,UAAU,EAAE,CAAC;AACnC,CAAC;AAED;;GAEG;AACH,MAAM,OAAO,QAAQ;IACX,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC;IAEnC;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,UAA2B,EAAE;QACvC,MAAM,EAAE,SAAS,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;QAErC,IAAI,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CACb,qFAAqF,CACtF,CAAC;QACJ,CAAC;QAED,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,MAAM,KAAK,MAAM;QACf,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,MAAM,KAAK,OAAO;QAChB,OAAO,UAAU,EAAE,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,MAAM,KAAK,aAAa;QACtB,OAAO,QAAQ,CAAC,WAAW,CAAC;IAC9B,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MicroPDF - Main API
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Options for MicroPDF initialization
|
|
6
|
+
*/
|
|
7
|
+
export interface MicroPDFOptions {
|
|
8
|
+
/**
|
|
9
|
+
* Whether to allow mock implementation when native addon is not available
|
|
10
|
+
* @default true
|
|
11
|
+
*/
|
|
12
|
+
allowMock?: boolean;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Get the MicroPDF library version
|
|
16
|
+
*/
|
|
17
|
+
export declare function getVersion(): string;
|
|
18
|
+
/**
|
|
19
|
+
* Main MicroPDF class
|
|
20
|
+
*/
|
|
21
|
+
export declare class MicroPDF {
|
|
22
|
+
private static initialized;
|
|
23
|
+
/**
|
|
24
|
+
* Initialize MicroPDF
|
|
25
|
+
*/
|
|
26
|
+
static init(options?: MicroPDFOptions): void;
|
|
27
|
+
/**
|
|
28
|
+
* Check if MicroPDF is using the mock implementation
|
|
29
|
+
*/
|
|
30
|
+
static get isMock(): boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Get the library version
|
|
33
|
+
*/
|
|
34
|
+
static get version(): string;
|
|
35
|
+
/**
|
|
36
|
+
* Check if initialized
|
|
37
|
+
*/
|
|
38
|
+
static get isInitialized(): boolean;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=micropdf.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"micropdf.d.ts","sourceRoot":"","sources":["../src/micropdf.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED;;GAEG;AACH,qBAAa,OAAO;IAClB,OAAO,CAAC,MAAM,CAAC,WAAW,CAAS;IAEnC;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,OAAO,GAAE,cAAmB,GAAG,IAAI;IAY/C;;OAEG;IACH,MAAM,KAAK,MAAM,IAAI,OAAO,CAE3B;IAED;;OAEG;IACH,MAAM,KAAK,OAAO,IAAI,MAAM,CAE3B;IAED;;OAEG;IACH,MAAM,KAAK,aAAa,IAAI,OAAO,CAElC;CACF"}
|