@embedpdf/pdfium 1.0.0-alpha.1 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,8 +1,6 @@
1
1
  <div align="center">
2
2
  <a href="https://wwww.embedpdf.com">
3
- <picture>
4
- <img alt="EmbedPDF logo" src="https://www.embedpdf.com/logo-192.png" height="96">
5
- </picture>
3
+ <img alt="EmbedPDF logo" src="https://www.embedpdf.com/logo-192.png" height="96">
6
4
  </a>
7
5
  <h1>EmbedPDF</h1>
8
6
 
@@ -56,21 +54,22 @@ bun add @embedpdf/pdfium
56
54
  ```javascript
57
55
  import { init, WrappedPdfiumModule } from '@embedpdf/pdfium';
58
56
 
59
- const pdfiumWasm = 'https://cdn.jsdelivr.net/npm/@embedpdf/pdfium/dist/pdfium.wasm';
57
+ const pdfiumWasm =
58
+ 'https://cdn.jsdelivr.net/npm/@embedpdf/pdfium/dist/pdfium.wasm';
60
59
 
61
60
  let pdfiumInstance = null;
62
61
 
63
62
  async function initializePdfium() {
64
63
  if (pdfiumInstance) return pdfiumInstance;
65
-
64
+
66
65
  const response = await fetch(pdfiumWasm);
67
66
  const wasmBinary = await response.arrayBuffer();
68
67
  pdfiumInstance = await init({ wasmBinary });
69
-
68
+
70
69
  // Initialize the PDFium extension library
71
70
  // This is required before performing any PDF operations
72
71
  pdfiumInstance.PDFiumExt_Init();
73
-
72
+
74
73
  return pdfiumInstance;
75
74
  }
76
75
 
package/dist/base.d.ts ADDED
@@ -0,0 +1,30 @@
1
+ import type { PdfiumModule } from './vendor/pdfium';
2
+ import type { PdfiumRuntimeMethods } from './runtime';
3
+ import { functions } from './functions';
4
+ export type { PdfiumModule } from './vendor/pdfium';
5
+ export type { PdfiumRuntimeMethods } from './runtime';
6
+ /**
7
+ * Name of JavaScript type
8
+ */
9
+ export type Type = null | 'number' | 'string' | 'boolean' | null;
10
+ /**
11
+ * Type of wrapped function
12
+ */
13
+ export type CWrappedFunc<I extends readonly Type[], R extends Type> = (...args: NamesToType<I>) => NameToType<R>;
14
+ /**
15
+ * Convert name to type
16
+ */
17
+ export type NameToType<R extends Type> = R extends 'number' ? number : R extends 'string' ? string : R extends 'boolean' ? boolean : R extends null ? null : never;
18
+ /**
19
+ * Convert array of names to JavaScript types
20
+ */
21
+ export type NamesToType<T extends readonly Type[]> = T extends [] ? [] : T extends readonly [infer U extends Type] ? [NameToType<U>] : T extends readonly [infer U extends Type, ...infer Rest extends readonly Type[]] ? [NameToType<U>, ...NamesToType<Rest>] : [];
22
+ export type Functions = typeof functions;
23
+ export type Wrapped<T extends Record<string, readonly [readonly Type[], Type]>> = {
24
+ [P in keyof T]: CWrappedFunc<T[P][0], T[P][1]>;
25
+ };
26
+ export type Methods = Wrapped<Functions>;
27
+ export type WrappedPdfiumModule = {
28
+ pdfium: PdfiumModule & PdfiumRuntimeMethods;
29
+ } & Methods;
30
+ export declare function createWrappedModule(pdfium: PdfiumModule & PdfiumRuntimeMethods): Promise<WrappedPdfiumModule>;
@@ -0,0 +1,170 @@
1
+ export declare const functions: {
2
+ PDFiumExt_Init: readonly [readonly [], null];
3
+ PDFiumExt_OpenFileWriter: readonly [readonly [], "number"];
4
+ PDFiumExt_CloseFileWriter: readonly [readonly ["number"], null];
5
+ PDFiumExt_GetFileWriterSize: readonly [readonly ["number"], "number"];
6
+ PDFiumExt_GetFileWriterData: readonly [readonly ["number", "number", "number"], null];
7
+ PDFiumExt_OpenFormFillInfo: readonly [readonly [], "number"];
8
+ PDFiumExt_CloseFormFillInfo: readonly [readonly ["number"], null];
9
+ PDFiumExt_InitFormFillEnvironment: readonly [readonly ["number", "number"], "number"];
10
+ PDFiumExt_ExitFormFillEnvironment: readonly [readonly ["number"], null];
11
+ PDFiumExt_SaveAsCopy: readonly [readonly ["number", "number"], null];
12
+ FPDF_LoadCustomDocument: readonly [readonly ["number", "number"], "number"];
13
+ FPDF_LoadMemDocument: readonly [readonly ["number", "number", "number"], "number"];
14
+ FPDF_GetPageSizeByIndexF: readonly [readonly ["number", "number", "number"], "number"];
15
+ FPDF_GetLastError: readonly [readonly [], "number"];
16
+ FPDF_GetPageCount: readonly [readonly ["number"], "number"];
17
+ FPDF_GetPageWidthF: readonly [readonly ["number"], "number"];
18
+ FPDF_GetPageHeightF: readonly [readonly ["number"], "number"];
19
+ FPDF_CloseDocument: readonly [readonly ["number"], null];
20
+ FPDF_GetDocPermissions: readonly [readonly ["number"], "number"];
21
+ FPDF_GetDocUserPermissions: readonly [readonly ["number"], "number"];
22
+ FPDF_DestroyLibrary: readonly [readonly [], null];
23
+ FPDF_GetMetaText: readonly [readonly ["number", "string", "number", "number"], "number"];
24
+ FPDFBitmap_FillRect: readonly [readonly ["number", "number", "number", "number", "number", "number"], null];
25
+ FPDFBitmap_Create: readonly [readonly ["number", "number", "number"], "number"];
26
+ FPDFBitmap_CreateEx: readonly [readonly ["number", "number", "number", "number", "number"], "number"];
27
+ FPDFBitmap_GetBuffer: readonly [readonly ["number"], "number"];
28
+ FPDFBitmap_GetWidth: readonly [readonly ["number"], "number"];
29
+ FPDFBitmap_GetHeight: readonly [readonly ["number"], "number"];
30
+ FPDFBitmap_GetFormat: readonly [readonly ["number"], "number"];
31
+ FPDFBitmap_Destroy: readonly [readonly ["number"], null];
32
+ FPDFPageObj_Destroy: readonly [readonly ["number"], null];
33
+ FPDFPageObj_NewImageObj: readonly [readonly ["number"], "number"];
34
+ FPDFPageObj_GetMatrix: readonly [readonly ["number", "number"], "boolean"];
35
+ FPDFPageObj_SetMatrix: readonly [readonly ["number", "number"], "boolean"];
36
+ FPDFPageObj_GetBounds: readonly [readonly ["number", "number", "number", "number", "number"], "boolean"];
37
+ FPDFPageObj_Transform: readonly [readonly ["number", "number", "number", "number", "number", "number", "number"], null];
38
+ FPDFPageObj_GetStrokeColor: readonly [readonly ["number", "number", "number", "number", "number"], "boolean"];
39
+ FPDFPageObj_GetFillColor: readonly [readonly ["number", "number", "number", "number", "number"], "boolean"];
40
+ FPDFImageObj_SetBitmap: readonly [readonly ["number", "number", "number", "number"], "boolean"];
41
+ FPDFImageObj_GetBitmap: readonly [readonly ["number"], "number"];
42
+ FPDFPath_CountSegments: readonly [readonly ["number"], "number"];
43
+ FPDFPath_GetPathSegment: readonly [readonly ["number", "number"], "number"];
44
+ FPDFPathSegment_GetType: readonly [readonly ["number"], "number"];
45
+ FPDFPathSegment_GetPoint: readonly [readonly ["number", "number", "number"], "boolean"];
46
+ FPDFPathSegment_GetClose: readonly [readonly ["number"], "boolean"];
47
+ FPDFFormObj_CountObjects: readonly [readonly ["number"], "number"];
48
+ FPDFFormObj_GetObject: readonly [readonly ["number", "number"], "number"];
49
+ FPDFBookmark_GetFirstChild: readonly [readonly ["number", "number"], "number"];
50
+ FPDFBookmark_GetNextSibling: readonly [readonly ["number", "number"], "number"];
51
+ FPDFBookmark_Find: readonly [readonly ["number", "string"], "number"];
52
+ FPDFBookmark_GetTitle: readonly [readonly ["number", "number", "number"], "number"];
53
+ FPDFBookmark_GetAction: readonly [readonly ["number"], "number"];
54
+ FPDFBookmark_GetDest: readonly [readonly ["number", "number"], "number"];
55
+ FPDFAction_GetType: readonly [readonly ["number"], "number"];
56
+ FPDFAction_GetFilePath: readonly [readonly ["number", "number", "number"], "number"];
57
+ FPDFAction_GetDest: readonly [readonly ["number", "number"], "number"];
58
+ FPDFAction_GetURIPath: readonly [readonly ["number", "number", "number", "number"], "number"];
59
+ FPDFDest_GetDestPageIndex: readonly [readonly ["number", "number"], "number"];
60
+ FPDFDest_GetView: readonly [readonly ["number", "number", "number"], "number"];
61
+ FPDFDest_GetLocationInPage: readonly [readonly ["number", "number", "number", "number", "number", "number", "number"], "boolean"];
62
+ FPDF_LoadPage: readonly [readonly ["number", "number"], "number"];
63
+ FPDF_RenderPageBitmap: readonly [readonly ["number", "number", "number", "number", "number", "number", "number", "number"], null];
64
+ FPDF_PageToDevice: readonly [readonly ["number", "number", "number", "number", "number", "number", "number", "number", "number", "number"], null];
65
+ FPDF_DeviceToPage: readonly [readonly ["number", "number", "number", "number", "number", "number", "number", "number", "number", "number"], "boolean"];
66
+ FPDFPage_GetAnnotCount: readonly [readonly ["number"], "number"];
67
+ FPDFPage_GetAnnot: readonly [readonly ["number", "number"], "number"];
68
+ FPDFPage_GetAnnotIndex: readonly [readonly ["number", "number"], "number"];
69
+ FPDFPage_CreateAnnot: readonly [readonly ["number", "number"], "number"];
70
+ FPDFPage_InsertObject: readonly [readonly ["number", "number"], "boolean"];
71
+ FPDFPage_RemoveAnnot: readonly [readonly ["number", "number"], "boolean"];
72
+ FPDFPage_GenerateContent: readonly [readonly ["number"], "boolean"];
73
+ FPDFPage_Flatten: readonly [readonly ["number", "number"], "number"];
74
+ FPDF_ClosePage: readonly [readonly ["number"], null];
75
+ FPDFAnnot_GetSubtype: readonly [readonly ["number"], "number"];
76
+ FPDFAnnot_GetAP: readonly [readonly ["number", "number", "number", "number"], "number"];
77
+ FPDFAnnot_SetAP: readonly [readonly ["number", "number", "number"], "boolean"];
78
+ FPDFAnnot_HasAttachmentPoints: readonly [readonly ["number"], "boolean"];
79
+ FPDFAnnot_SetAttachmentPoints: readonly [readonly ["number", "number", "number"], "boolean"];
80
+ FPDFAnnot_CountAttachmentPoints: readonly [readonly ["number"], "number"];
81
+ FPDFAnnot_AppendAttachmentPoints: readonly [readonly ["number", "number"], "boolean"];
82
+ FPDFAnnot_GetAttachmentPoints: readonly [readonly ["number", "number", "number"], "boolean"];
83
+ FPDFAnnot_GetObjectCount: readonly [readonly ["number"], "number"];
84
+ FPDFAnnot_GetObject: readonly [readonly ["number", "number"], "number"];
85
+ FPDFAnnot_AppendObject: readonly [readonly ["number", "number"], "boolean"];
86
+ FPDFAnnot_GetRect: readonly [readonly ["number", "number"], "boolean"];
87
+ FPDFAnnot_SetRect: readonly [readonly ["number", "number"], "boolean"];
88
+ FPDFAnnot_GetLink: readonly [readonly ["number"], "number"];
89
+ FPDFAnnot_GetFormFieldType: readonly [readonly ["number", "number"], "number"];
90
+ FPDFAnnot_GetFormFieldFlags: readonly [readonly ["number", "number"], "number"];
91
+ FPDFAnnot_GetFormFieldName: readonly [readonly ["number", "number", "number", "number"], "number"];
92
+ FPDFAnnot_GetFormFieldAlternateName: readonly [readonly ["number", "number", "number", "number"], "number"];
93
+ FPDFAnnot_GetFormFieldValue: readonly [readonly ["number", "number", "number", "number"], "number"];
94
+ FPDFAnnot_GetOptionCount: readonly [readonly ["number", "number"], "number"];
95
+ FPDFAnnot_GetOptionLabel: readonly [readonly ["number", "number", "number", "number", "number"], "number"];
96
+ FPDFAnnot_IsOptionSelected: readonly [readonly ["number", "number", "number"], "boolean"];
97
+ FPDFAnnot_IsChecked: readonly [readonly ["number", "number"], "boolean"];
98
+ FPDFAnnot_GetStringValue: readonly [readonly ["number", "string", "number", "number"], "number"];
99
+ FPDFAnnot_GetColor: readonly [readonly ["number", "number", "number", "number", "number", "number"], "boolean"];
100
+ FPDFAnnot_SetColor: readonly [readonly ["number", "number", "number", "number", "number", "number"], "boolean"];
101
+ FPDFAnnot_GetLinkedAnnot: readonly [readonly ["number", "string"], "number"];
102
+ FPDFAnnot_GetInkListCount: readonly [readonly ["number"], "number"];
103
+ FPDFAnnot_GetInkListPath: readonly [readonly ["number", "number", "number", "number"], "number"];
104
+ FPDFAnnot_AddInkStroke: readonly [readonly ["number", "number", "number"], "number"];
105
+ FPDFAnnot_RemoveInkList: readonly [readonly ["number"], "boolean"];
106
+ FPDFAnnot_GetVertices: readonly [readonly ["number", "number", "number"], "number"];
107
+ FPDFAnnot_GetLine: readonly [readonly ["number", "number", "number"], "number"];
108
+ FPDFPageObj_GetType: readonly [readonly ["number"], "number"];
109
+ FPDFLink_GetDest: readonly [readonly ["number", "number"], "number"];
110
+ FPDFLink_GetAction: readonly [readonly ["number"], "number"];
111
+ FPDFText_LoadPage: readonly [readonly ["number"], "number"];
112
+ FPDFText_CountChars: readonly [readonly ["number"], "number"];
113
+ FPDFText_CountRects: readonly [readonly ["number", "number", "number"], "number"];
114
+ FPDFText_GetCharAngle: readonly [readonly ["number", "number"], "number"];
115
+ FPDFText_GetUnicode: readonly [readonly ["number", "number"], "number"];
116
+ FPDFText_GetTextObject: readonly [readonly ["number", "number"], "number"];
117
+ FPDFText_GetLooseCharBox: readonly [readonly ["number", "number", "number"], "boolean"];
118
+ FPDFText_GetRect: readonly [readonly ["number", "number", "number", "number", "number", "number"], "boolean"];
119
+ FPDFText_GetCharIndexAtPos: readonly [readonly ["number", "number", "number", "number", "number"], "number"];
120
+ FPDFText_GetFontSize: readonly [readonly ["number", "number"], "number"];
121
+ FPDFText_GetFontInfo: readonly [readonly ["number", "number", "number", "number", "number"], "number"];
122
+ FPDFText_GetBoundedText: readonly [readonly ["number", "number", "number", "number", "number", "number", "number"], "number"];
123
+ FPDFText_FindStart: readonly [readonly ["number", "number", "number", "number"], "number"];
124
+ FPDFText_FindNext: readonly [readonly ["number"], "boolean"];
125
+ FPDFText_FindPrev: readonly [readonly ["number"], "boolean"];
126
+ FPDFText_GetSchResultIndex: readonly [readonly ["number"], "number"];
127
+ FPDFText_GetSchCount: readonly [readonly ["number"], "number"];
128
+ FPDFText_FindClose: readonly [readonly ["number"], null];
129
+ FPDFText_ClosePage: readonly [readonly ["number"], null];
130
+ FPDFText_GetText: readonly [readonly ["number", "number", "number", "number"], "number"];
131
+ FPDFText_GetCharBox: readonly [readonly ["number", "number", "number", "number", "number", "number"], "boolean"];
132
+ FPDFPage_CloseAnnot: readonly [readonly ["number"], null];
133
+ FPDFDoc_GetAttachmentCount: readonly [readonly ["number"], "number"];
134
+ FPDFDoc_GetAttachment: readonly [readonly ["number", "number"], "number"];
135
+ FPDFAttachment_GetName: readonly [readonly ["number", "number", "number"], "number"];
136
+ FPDFAttachment_GetStringValue: readonly [readonly ["number", "string", "number", "number"], "number"];
137
+ FPDFAttachment_GetFile: readonly [readonly ["number", "number", "number", "number"], "boolean"];
138
+ FORM_OnAfterLoadPage: readonly [readonly ["number", "number"], null];
139
+ FORM_OnBeforeClosePage: readonly [readonly ["number", "number"], null];
140
+ FPDFAnnot_SetFocusableSubtypes: readonly [readonly ["number", "number", "number"], "boolean"];
141
+ FPDFAnnot_GetFocusableSubtypesCount: readonly [readonly ["number"], "number"];
142
+ FPDFAnnot_GetFocusableSubtypes: readonly [readonly ["number", "number", "number"], "boolean"];
143
+ FORM_SetFocusedAnnot: readonly [readonly ["number", "number"], "boolean"];
144
+ FORM_SetIndexSelected: readonly [readonly ["number", "number", "number", "boolean"], "boolean"];
145
+ FORM_OnKeyDown: readonly [readonly ["number", "number", "number", "number"], "boolean"];
146
+ FORM_OnKeyUp: readonly [readonly ["number", "number", "number", "number"], "boolean"];
147
+ FORM_OnChar: readonly [readonly ["number", "number", "number", "number"], "boolean"];
148
+ FORM_SelectAllText: readonly [readonly ["number", "number"], "boolean"];
149
+ FORM_ReplaceSelection: readonly [readonly ["number", "number", "number"], null];
150
+ FORM_ForceToKillFocus: readonly [readonly ["number"], "boolean"];
151
+ FPDF_GetSignatureCount: readonly [readonly ["number"], "number"];
152
+ FPDF_GetSignatureObject: readonly [readonly ["number", "number"], "number"];
153
+ FPDFSignatureObj_GetContents: readonly [readonly ["number", "number", "number"], "number"];
154
+ FPDFSignatureObj_GetByteRange: readonly [readonly ["number", "number", "number"], "number"];
155
+ FPDFSignatureObj_GetSubFilter: readonly [readonly ["number", "number", "number"], "number"];
156
+ FPDFSignatureObj_GetReason: readonly [readonly ["number", "number", "number"], "number"];
157
+ FPDFSignatureObj_GetTime: readonly [readonly ["number", "number", "number"], "number"];
158
+ FPDFSignatureObj_GetDocMDPPermission: readonly [readonly ["number"], "number"];
159
+ FPDF_CreateNewDocument: readonly [readonly [], "number"];
160
+ FPDF_ImportPagesByIndex: readonly [readonly ["number", "number", "number", "number", "number"], "boolean"];
161
+ FPDF_ImportPages: readonly [readonly ["number", "number", "number", "number"], "boolean"];
162
+ FPDFAvail_Create: readonly [readonly ["number", "number"], "number"];
163
+ FPDFAvail_Destroy: readonly [readonly ["number"], null];
164
+ FPDFAvail_IsDocAvail: readonly [readonly ["number", "number"], "number"];
165
+ FPDFAvail_GetDocument: readonly [readonly ["number", "number"], "number"];
166
+ FPDFAvail_GetFirstPageNum: readonly [readonly ["number"], "number"];
167
+ FPDFAvail_IsPageAvail: readonly [readonly ["number", "number", "number"], "number"];
168
+ FPDFAvail_IsFormAvail: readonly [readonly ["number", "number"], "number"];
169
+ FPDFAvail_IsLinearized: readonly [readonly ["number"], "number"];
170
+ };