survey-pdf 2.0.8 → 2.0.9
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/fesm/pdf-form-filler-shared.mjs +191 -0
- package/fesm/pdf-form-filler-shared.mjs.map +1 -0
- package/fesm/pdf-form-filler.mjs +26 -0
- package/fesm/pdf-form-filler.mjs.map +1 -0
- package/fesm/pdf-form-filler.node.mjs +27 -0
- package/fesm/pdf-form-filler.node.mjs.map +1 -0
- package/fesm/survey.pdf.fonts.mjs +1 -1
- package/fesm/survey.pdf.mjs +2 -2
- package/fesm/survey.pdf.mjs.map +1 -1
- package/package.json +10 -2
- package/pdf-form-filler.js +582 -0
- package/pdf-form-filler.js.map +1 -0
- package/pdf-form-filler.min.js +2 -0
- package/pdf-form-filler.min.js.LICENSE.txt +5 -0
- package/pdf-form-filler.node.js +605 -0
- package/pdf-form-filler.node.js.map +1 -0
- package/pdf-form-filler.node.min.js +2 -0
- package/pdf-form-filler.node.min.js.LICENSE.txt +5 -0
- package/survey.pdf.fonts.js +1 -1
- package/survey.pdf.fonts.min.js.LICENSE.txt +1 -1
- package/survey.pdf.js +2 -2
- package/survey.pdf.js.map +1 -1
- package/survey.pdf.min.js +1 -1
- package/survey.pdf.min.js.LICENSE.txt +1 -1
- package/typings/entries/forms-node.d.ts +3 -0
- package/typings/entries/forms.d.ts +3 -0
- package/typings/pdf_forms/adapters/adapter.d.ts +3 -0
- package/typings/pdf_forms/adapters/pdf-lib.d.ts +6 -0
- package/typings/pdf_forms/adapters/pdfjs.d.ts +6 -0
- package/typings/pdf_forms/forms-base.d.ts +32 -0
- package/typings/pdf_forms/forms-node.d.ts +4 -0
- package/typings/pdf_forms/forms.d.ts +4 -0
- package/typings/pdf_forms/map.d.ts +7 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "survey-pdf",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.9",
|
|
4
4
|
"description": "survey.pdf.js is a SurveyJS PDF Library. It is a easy way to export SurveyJS surveys to PDF. It uses JSON for survey metadata.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Survey",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
},
|
|
20
20
|
"typings": "./typings/entries/pdf.d.ts",
|
|
21
21
|
"peerDependencies": {
|
|
22
|
-
"survey-core": "2.0.
|
|
22
|
+
"survey-core": "2.0.9"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
25
|
"jspdf": "^2.3.0 || ^3"
|
|
@@ -33,6 +33,14 @@
|
|
|
33
33
|
"./survey.pdf.fonts": {
|
|
34
34
|
"import": "./fesm/survey.pdf.fonts.mjs",
|
|
35
35
|
"require": "./survey.pdf.fonts.js"
|
|
36
|
+
},
|
|
37
|
+
"./pdf-form-filler": {
|
|
38
|
+
"node": {
|
|
39
|
+
"import": "./fesm/pdf-form-filler.node.mjs",
|
|
40
|
+
"require": "./pdf-form-filler.node.js"
|
|
41
|
+
},
|
|
42
|
+
"import": "./fesm/pdf-form-filler.mjs",
|
|
43
|
+
"require": "./pdf-form-filler.js"
|
|
36
44
|
}
|
|
37
45
|
}
|
|
38
46
|
}
|
|
@@ -0,0 +1,582 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* surveyjs - SurveyJS PDF library v2.0.9
|
|
3
|
+
* Copyright (c) 2015-2025 Devsoft Baltic OÜ - http://surveyjs.io/
|
|
4
|
+
* License: MIT (http://www.opensource.org/licenses/mit-license.php)
|
|
5
|
+
*/
|
|
6
|
+
(function webpackUniversalModuleDefinition(root, factory) {
|
|
7
|
+
if(typeof exports === 'object' && typeof module === 'object')
|
|
8
|
+
module.exports = factory();
|
|
9
|
+
else if(typeof define === 'function' && define.amd)
|
|
10
|
+
define("PDFFormFiller", [], factory);
|
|
11
|
+
else if(typeof exports === 'object')
|
|
12
|
+
exports["PDFFormFiller"] = factory();
|
|
13
|
+
else
|
|
14
|
+
root["PDFFormFiller"] = factory();
|
|
15
|
+
})(this, () => {
|
|
16
|
+
return /******/ (() => { // webpackBootstrap
|
|
17
|
+
/******/ "use strict";
|
|
18
|
+
/******/ var __webpack_modules__ = ({
|
|
19
|
+
|
|
20
|
+
/***/ "./src/entries/helpers.ts":
|
|
21
|
+
/*!********************************!*\
|
|
22
|
+
!*** ./src/entries/helpers.ts ***!
|
|
23
|
+
\********************************/
|
|
24
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
25
|
+
|
|
26
|
+
__webpack_require__.r(__webpack_exports__);
|
|
27
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
28
|
+
/* harmony export */ __assign: () => (/* binding */ __assign),
|
|
29
|
+
/* harmony export */ __awaiter: () => (/* binding */ __awaiter),
|
|
30
|
+
/* harmony export */ __decorate: () => (/* binding */ __decorate),
|
|
31
|
+
/* harmony export */ __extends: () => (/* binding */ __extends),
|
|
32
|
+
/* harmony export */ __generator: () => (/* binding */ __generator),
|
|
33
|
+
/* harmony export */ __rest: () => (/* binding */ __rest),
|
|
34
|
+
/* harmony export */ __spreadArray: () => (/* binding */ __spreadArray)
|
|
35
|
+
/* harmony export */ });
|
|
36
|
+
var extendStatics = function (d, b) {
|
|
37
|
+
extendStatics = Object.setPrototypeOf ||
|
|
38
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
39
|
+
function (d, b) { for (var p in b)
|
|
40
|
+
if (Object.prototype.hasOwnProperty.call(b, p))
|
|
41
|
+
d[p] = b[p]; };
|
|
42
|
+
return extendStatics(d, b);
|
|
43
|
+
};
|
|
44
|
+
function __extends(d, b) {
|
|
45
|
+
if (typeof b !== 'function' && b !== null)
|
|
46
|
+
throw new TypeError('Class extends value ' + String(b) + ' is not a constructor or null');
|
|
47
|
+
extendStatics(d, b);
|
|
48
|
+
function __() { this.constructor = d; }
|
|
49
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
50
|
+
// @ts-ignore
|
|
51
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
52
|
+
}
|
|
53
|
+
var __assign = function () {
|
|
54
|
+
__assign = Object.assign || function __assign(t) {
|
|
55
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
56
|
+
s = arguments[i];
|
|
57
|
+
for (var p in s)
|
|
58
|
+
if (Object.prototype.hasOwnProperty.call(s, p))
|
|
59
|
+
t[p] = s[p];
|
|
60
|
+
}
|
|
61
|
+
return t;
|
|
62
|
+
};
|
|
63
|
+
return __assign.apply(this, arguments);
|
|
64
|
+
};
|
|
65
|
+
function __rest(s, e) {
|
|
66
|
+
var t = {};
|
|
67
|
+
for (var p in s)
|
|
68
|
+
if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
69
|
+
t[p] = s[p];
|
|
70
|
+
if (s != null && typeof Object.getOwnPropertySymbols === 'function')
|
|
71
|
+
for (var i = 0, q = Object.getOwnPropertySymbols(s); i < q.length; i++) {
|
|
72
|
+
if (e.indexOf(q[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, q[i]))
|
|
73
|
+
t[q[i]] = s[q[i]];
|
|
74
|
+
}
|
|
75
|
+
return t;
|
|
76
|
+
}
|
|
77
|
+
function __decorate(decorators, target, key, desc) {
|
|
78
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
79
|
+
if (typeof Reflect === 'object' && typeof Reflect.decorate === 'function')
|
|
80
|
+
r = Reflect.decorate(decorators, target, key, desc);
|
|
81
|
+
// eslint-disable-next-line no-cond-assign
|
|
82
|
+
else
|
|
83
|
+
for (var i = decorators.length - 1; i >= 0; i--)
|
|
84
|
+
if (d = decorators[i])
|
|
85
|
+
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
86
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
87
|
+
}
|
|
88
|
+
function __awaiter(thisArg, _arguments, P, generator) {
|
|
89
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
90
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
91
|
+
function fulfilled(value) { try {
|
|
92
|
+
step(generator.next(value));
|
|
93
|
+
}
|
|
94
|
+
catch (e) {
|
|
95
|
+
reject(e);
|
|
96
|
+
} }
|
|
97
|
+
function rejected(value) { try {
|
|
98
|
+
step(generator['throw'](value));
|
|
99
|
+
}
|
|
100
|
+
catch (e) {
|
|
101
|
+
reject(e);
|
|
102
|
+
} }
|
|
103
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
104
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
function __generator(thisArg, body) {
|
|
108
|
+
var _ = { label: 0, sent: function () { if (t[0] & 1)
|
|
109
|
+
throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
110
|
+
return g = { next: verb(0), 'throw': verb(1), 'return': verb(2) }, typeof Symbol === 'function' && (g[Symbol.iterator] = function () { return this; }), g;
|
|
111
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
112
|
+
function step(op) {
|
|
113
|
+
if (f)
|
|
114
|
+
throw new TypeError('Generator is already executing.');
|
|
115
|
+
while (_)
|
|
116
|
+
try {
|
|
117
|
+
if (f = 1, y && (t = op[0] & 2 ? y['return'] : op[0] ? y['throw'] || ((t = y['return']) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
|
|
118
|
+
return t;
|
|
119
|
+
if (y = 0, t)
|
|
120
|
+
op = [op[0] & 2, t.value];
|
|
121
|
+
switch (op[0]) {
|
|
122
|
+
case 0:
|
|
123
|
+
case 1:
|
|
124
|
+
t = op;
|
|
125
|
+
break;
|
|
126
|
+
case 4:
|
|
127
|
+
_.label++;
|
|
128
|
+
return { value: op[1], done: false };
|
|
129
|
+
case 5:
|
|
130
|
+
_.label++;
|
|
131
|
+
y = op[1];
|
|
132
|
+
op = [0];
|
|
133
|
+
continue;
|
|
134
|
+
case 7:
|
|
135
|
+
op = _.ops.pop();
|
|
136
|
+
_.trys.pop();
|
|
137
|
+
continue;
|
|
138
|
+
default:
|
|
139
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
|
|
140
|
+
_ = 0;
|
|
141
|
+
continue;
|
|
142
|
+
}
|
|
143
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) {
|
|
144
|
+
_.label = op[1];
|
|
145
|
+
break;
|
|
146
|
+
}
|
|
147
|
+
if (op[0] === 6 && _.label < t[1]) {
|
|
148
|
+
_.label = t[1];
|
|
149
|
+
t = op;
|
|
150
|
+
break;
|
|
151
|
+
}
|
|
152
|
+
if (t && _.label < t[2]) {
|
|
153
|
+
_.label = t[2];
|
|
154
|
+
_.ops.push(op);
|
|
155
|
+
break;
|
|
156
|
+
}
|
|
157
|
+
if (t[2])
|
|
158
|
+
_.ops.pop();
|
|
159
|
+
_.trys.pop();
|
|
160
|
+
continue;
|
|
161
|
+
}
|
|
162
|
+
op = body.call(thisArg, _);
|
|
163
|
+
}
|
|
164
|
+
catch (e) {
|
|
165
|
+
op = [6, e];
|
|
166
|
+
y = 0;
|
|
167
|
+
}
|
|
168
|
+
finally {
|
|
169
|
+
f = t = 0;
|
|
170
|
+
}
|
|
171
|
+
if (op[0] & 5)
|
|
172
|
+
throw op[1];
|
|
173
|
+
return { value: op[0] ? op[1] : void 0, done: true };
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
function __spreadArray(to, from, pack) {
|
|
177
|
+
if (pack || arguments.length === 2)
|
|
178
|
+
for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
179
|
+
if (ar || !(i in from)) {
|
|
180
|
+
if (!ar)
|
|
181
|
+
ar = Array.prototype.slice.call(from, 0, i);
|
|
182
|
+
ar[i] = from[i];
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
|
|
189
|
+
/***/ }),
|
|
190
|
+
|
|
191
|
+
/***/ "./src/pdf_forms/adapters/pdf-lib.ts":
|
|
192
|
+
/*!*******************************************!*\
|
|
193
|
+
!*** ./src/pdf_forms/adapters/pdf-lib.ts ***!
|
|
194
|
+
\*******************************************/
|
|
195
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
196
|
+
|
|
197
|
+
__webpack_require__.r(__webpack_exports__);
|
|
198
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
199
|
+
/* harmony export */ PDFLibAdapter: () => (/* binding */ PDFLibAdapter)
|
|
200
|
+
/* harmony export */ });
|
|
201
|
+
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./src/entries/helpers.ts");
|
|
202
|
+
|
|
203
|
+
var PDFLibAdapter = /** @class */ (function () {
|
|
204
|
+
function PDFLibAdapter(pdfLibrary) {
|
|
205
|
+
this.pdfLibrary = pdfLibrary;
|
|
206
|
+
}
|
|
207
|
+
PDFLibAdapter.prototype.fillForm = function (template, data) {
|
|
208
|
+
return (0,tslib__WEBPACK_IMPORTED_MODULE_0__.__awaiter)(this, void 0, void 0, function () {
|
|
209
|
+
var _a, PDFDocument, PDFTextField, PDFCheckBox, PDFRadioGroup, PDFDropdown, pdfDoc, form, fields;
|
|
210
|
+
return (0,tslib__WEBPACK_IMPORTED_MODULE_0__.__generator)(this, function (_b) {
|
|
211
|
+
switch (_b.label) {
|
|
212
|
+
case 0:
|
|
213
|
+
_a = this.pdfLibrary, PDFDocument = _a.PDFDocument, PDFTextField = _a.PDFTextField, PDFCheckBox = _a.PDFCheckBox, PDFRadioGroup = _a.PDFRadioGroup, PDFDropdown = _a.PDFDropdown;
|
|
214
|
+
return [4 /*yield*/, PDFDocument.load(template)];
|
|
215
|
+
case 1:
|
|
216
|
+
pdfDoc = _b.sent();
|
|
217
|
+
form = pdfDoc.getForm();
|
|
218
|
+
fields = form.getFields();
|
|
219
|
+
fields.forEach(function (field) {
|
|
220
|
+
var fieldName = field.getName();
|
|
221
|
+
var value = data[fieldName];
|
|
222
|
+
if (value === null || value === undefined)
|
|
223
|
+
return;
|
|
224
|
+
if (field instanceof PDFTextField) {
|
|
225
|
+
field.setText(value);
|
|
226
|
+
}
|
|
227
|
+
else if (field instanceof PDFCheckBox) {
|
|
228
|
+
if (value)
|
|
229
|
+
field.check();
|
|
230
|
+
else
|
|
231
|
+
field.uncheck();
|
|
232
|
+
}
|
|
233
|
+
else if (field instanceof PDFRadioGroup || field instanceof PDFDropdown) {
|
|
234
|
+
field.select(value.toString());
|
|
235
|
+
}
|
|
236
|
+
});
|
|
237
|
+
return [4 /*yield*/, pdfDoc.save()];
|
|
238
|
+
case 2: return [2 /*return*/, _b.sent()];
|
|
239
|
+
}
|
|
240
|
+
});
|
|
241
|
+
});
|
|
242
|
+
};
|
|
243
|
+
return PDFLibAdapter;
|
|
244
|
+
}());
|
|
245
|
+
|
|
246
|
+
|
|
247
|
+
|
|
248
|
+
/***/ }),
|
|
249
|
+
|
|
250
|
+
/***/ "./src/pdf_forms/adapters/pdfjs.ts":
|
|
251
|
+
/*!*****************************************!*\
|
|
252
|
+
!*** ./src/pdf_forms/adapters/pdfjs.ts ***!
|
|
253
|
+
\*****************************************/
|
|
254
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
255
|
+
|
|
256
|
+
__webpack_require__.r(__webpack_exports__);
|
|
257
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
258
|
+
/* harmony export */ PDFJSAdapter: () => (/* binding */ PDFJSAdapter)
|
|
259
|
+
/* harmony export */ });
|
|
260
|
+
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./src/entries/helpers.ts");
|
|
261
|
+
|
|
262
|
+
var PDFJSAdapter = /** @class */ (function () {
|
|
263
|
+
function PDFJSAdapter(pdfLibrary) {
|
|
264
|
+
this.pdfLibrary = pdfLibrary;
|
|
265
|
+
}
|
|
266
|
+
PDFJSAdapter.prototype.fillForm = function (template, data) {
|
|
267
|
+
return (0,tslib__WEBPACK_IMPORTED_MODULE_0__.__awaiter)(this, void 0, void 0, function () {
|
|
268
|
+
var pdfjsLib, doc, page, annotations;
|
|
269
|
+
return (0,tslib__WEBPACK_IMPORTED_MODULE_0__.__generator)(this, function (_a) {
|
|
270
|
+
switch (_a.label) {
|
|
271
|
+
case 0:
|
|
272
|
+
pdfjsLib = this.pdfLibrary;
|
|
273
|
+
return [4 /*yield*/, pdfjsLib.getDocument(template).promise];
|
|
274
|
+
case 1:
|
|
275
|
+
doc = _a.sent();
|
|
276
|
+
return [4 /*yield*/, doc.getPage(1)];
|
|
277
|
+
case 2:
|
|
278
|
+
page = _a.sent();
|
|
279
|
+
return [4 /*yield*/, page.getAnnotations()];
|
|
280
|
+
case 3:
|
|
281
|
+
annotations = _a.sent();
|
|
282
|
+
annotations.forEach(function (field) {
|
|
283
|
+
if (field.fieldType == undefined)
|
|
284
|
+
return;
|
|
285
|
+
var value = data[field.fieldName];
|
|
286
|
+
if (value) {
|
|
287
|
+
if (field.radioButton && field.buttonValue != value) {
|
|
288
|
+
return;
|
|
289
|
+
}
|
|
290
|
+
doc.annotationStorage.setValue(field.id, { value: value });
|
|
291
|
+
}
|
|
292
|
+
});
|
|
293
|
+
return [4 /*yield*/, doc.saveDocument()];
|
|
294
|
+
case 4: return [2 /*return*/, _a.sent()];
|
|
295
|
+
}
|
|
296
|
+
});
|
|
297
|
+
});
|
|
298
|
+
};
|
|
299
|
+
return PDFJSAdapter;
|
|
300
|
+
}());
|
|
301
|
+
|
|
302
|
+
|
|
303
|
+
|
|
304
|
+
/***/ }),
|
|
305
|
+
|
|
306
|
+
/***/ "./src/pdf_forms/forms-base.ts":
|
|
307
|
+
/*!*************************************!*\
|
|
308
|
+
!*** ./src/pdf_forms/forms-base.ts ***!
|
|
309
|
+
\*************************************/
|
|
310
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
311
|
+
|
|
312
|
+
__webpack_require__.r(__webpack_exports__);
|
|
313
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
314
|
+
/* harmony export */ PDFFormFillerBase: () => (/* binding */ PDFFormFillerBase)
|
|
315
|
+
/* harmony export */ });
|
|
316
|
+
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./src/entries/helpers.ts");
|
|
317
|
+
/* harmony import */ var _map__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./map */ "./src/pdf_forms/map.ts");
|
|
318
|
+
|
|
319
|
+
|
|
320
|
+
var PDFFormFillerBase = /** @class */ (function () {
|
|
321
|
+
function PDFFormFillerBase(options) {
|
|
322
|
+
if (options === void 0) { options = null; }
|
|
323
|
+
if (options) {
|
|
324
|
+
this.data = options.data;
|
|
325
|
+
this.fieldMap = options.fieldMap;
|
|
326
|
+
this.pdfTemplate = options.pdfTemplate;
|
|
327
|
+
this.pdfLibraryAdapter = options.pdfLibraryAdapter;
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
PDFFormFillerBase.prototype.getPDFBytes = function () {
|
|
331
|
+
return (0,tslib__WEBPACK_IMPORTED_MODULE_0__.__awaiter)(this, void 0, void 0, function () {
|
|
332
|
+
var map, plainData;
|
|
333
|
+
return (0,tslib__WEBPACK_IMPORTED_MODULE_0__.__generator)(this, function (_a) {
|
|
334
|
+
switch (_a.label) {
|
|
335
|
+
case 0:
|
|
336
|
+
map = new _map__WEBPACK_IMPORTED_MODULE_1__["default"](this.fieldMap);
|
|
337
|
+
plainData = map.mapData(this.data);
|
|
338
|
+
return [4 /*yield*/, this.pdfLibraryAdapter.fillForm(this.pdfTemplate, plainData)];
|
|
339
|
+
case 1: return [2 /*return*/, _a.sent()];
|
|
340
|
+
}
|
|
341
|
+
});
|
|
342
|
+
});
|
|
343
|
+
};
|
|
344
|
+
/**
|
|
345
|
+
* An asynchronous method that allows you to get PDF content in different formats.
|
|
346
|
+
*
|
|
347
|
+
* [View Demo](https://surveyjs.io/pdf-generator/examples/convert-pdf-form-blob-base64-raw-pdf-javascript/ (linkStyle))
|
|
348
|
+
*
|
|
349
|
+
* @param type *(Optional)* One of `"blob"`, `"bloburl"`, `"dataurlstring"`. Do not specify this parameter if you want to get raw PDF content as a string value.
|
|
350
|
+
*
|
|
351
|
+
*/
|
|
352
|
+
PDFFormFillerBase.prototype.raw = function (type) {
|
|
353
|
+
return (0,tslib__WEBPACK_IMPORTED_MODULE_0__.__awaiter)(this, void 0, void 0, function () {
|
|
354
|
+
var pdfBytes, blob;
|
|
355
|
+
return (0,tslib__WEBPACK_IMPORTED_MODULE_0__.__generator)(this, function (_a) {
|
|
356
|
+
switch (_a.label) {
|
|
357
|
+
case 0: return [4 /*yield*/, this.getPDFBytes()];
|
|
358
|
+
case 1:
|
|
359
|
+
pdfBytes = _a.sent();
|
|
360
|
+
if (!type)
|
|
361
|
+
return [2 /*return*/, pdfBytes];
|
|
362
|
+
if (type == 'dataurlstring')
|
|
363
|
+
return [2 /*return*/, 'data:text/plain;base64,' + btoa(pdfBytes)];
|
|
364
|
+
blob = new Blob([pdfBytes], { type: 'application/pdf' });
|
|
365
|
+
if (type == 'blob')
|
|
366
|
+
return [2 /*return*/, blob];
|
|
367
|
+
if (type == 'bloburl')
|
|
368
|
+
return [2 /*return*/, URL.createObjectURL(blob)];
|
|
369
|
+
return [2 /*return*/, pdfBytes];
|
|
370
|
+
}
|
|
371
|
+
});
|
|
372
|
+
});
|
|
373
|
+
};
|
|
374
|
+
/**
|
|
375
|
+
* An asynchronous method that starts download of the generated PDF file in the web browser.
|
|
376
|
+
*
|
|
377
|
+
* @param fileName *(Optional)* A file name with the ".pdf" extension. Default value: `"survey_result.pdf"`.
|
|
378
|
+
*/
|
|
379
|
+
PDFFormFillerBase.prototype.save = function () {
|
|
380
|
+
return (0,tslib__WEBPACK_IMPORTED_MODULE_0__.__awaiter)(this, arguments, void 0, function (fileName) {
|
|
381
|
+
var pdfBytes;
|
|
382
|
+
if (fileName === void 0) { fileName = 'survey_result.pdf'; }
|
|
383
|
+
return (0,tslib__WEBPACK_IMPORTED_MODULE_0__.__generator)(this, function (_a) {
|
|
384
|
+
switch (_a.label) {
|
|
385
|
+
case 0: return [4 /*yield*/, this.getPDFBytes()];
|
|
386
|
+
case 1:
|
|
387
|
+
pdfBytes = _a.sent();
|
|
388
|
+
return [4 /*yield*/, this.saveToFile(pdfBytes, fileName)];
|
|
389
|
+
case 2:
|
|
390
|
+
_a.sent();
|
|
391
|
+
return [2 /*return*/];
|
|
392
|
+
}
|
|
393
|
+
});
|
|
394
|
+
});
|
|
395
|
+
};
|
|
396
|
+
return PDFFormFillerBase;
|
|
397
|
+
}());
|
|
398
|
+
|
|
399
|
+
|
|
400
|
+
|
|
401
|
+
/***/ }),
|
|
402
|
+
|
|
403
|
+
/***/ "./src/pdf_forms/forms.ts":
|
|
404
|
+
/*!********************************!*\
|
|
405
|
+
!*** ./src/pdf_forms/forms.ts ***!
|
|
406
|
+
\********************************/
|
|
407
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
408
|
+
|
|
409
|
+
__webpack_require__.r(__webpack_exports__);
|
|
410
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
411
|
+
/* harmony export */ PDFFormFiller: () => (/* binding */ PDFFormFiller)
|
|
412
|
+
/* harmony export */ });
|
|
413
|
+
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./src/entries/helpers.ts");
|
|
414
|
+
/* harmony import */ var _forms_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./forms-base */ "./src/pdf_forms/forms-base.ts");
|
|
415
|
+
|
|
416
|
+
|
|
417
|
+
var PDFFormFiller = /** @class */ (function (_super) {
|
|
418
|
+
(0,tslib__WEBPACK_IMPORTED_MODULE_0__.__extends)(PDFFormFiller, _super);
|
|
419
|
+
function PDFFormFiller() {
|
|
420
|
+
return _super !== null && _super.apply(this, arguments) || this;
|
|
421
|
+
}
|
|
422
|
+
PDFFormFiller.prototype.saveToFile = function (pdfBytes, fileName) {
|
|
423
|
+
return (0,tslib__WEBPACK_IMPORTED_MODULE_0__.__awaiter)(this, void 0, void 0, function () {
|
|
424
|
+
var blob, link;
|
|
425
|
+
return (0,tslib__WEBPACK_IMPORTED_MODULE_0__.__generator)(this, function (_a) {
|
|
426
|
+
blob = new Blob([pdfBytes], { type: 'application/pdf' });
|
|
427
|
+
link = document.createElement('a');
|
|
428
|
+
link.href = URL.createObjectURL(blob);
|
|
429
|
+
link.download = fileName;
|
|
430
|
+
document.body.appendChild(link);
|
|
431
|
+
link.click();
|
|
432
|
+
document.body.removeChild(link);
|
|
433
|
+
URL.revokeObjectURL(link.href);
|
|
434
|
+
return [2 /*return*/];
|
|
435
|
+
});
|
|
436
|
+
});
|
|
437
|
+
};
|
|
438
|
+
return PDFFormFiller;
|
|
439
|
+
}(_forms_base__WEBPACK_IMPORTED_MODULE_1__.PDFFormFillerBase));
|
|
440
|
+
|
|
441
|
+
|
|
442
|
+
|
|
443
|
+
/***/ }),
|
|
444
|
+
|
|
445
|
+
/***/ "./src/pdf_forms/map.ts":
|
|
446
|
+
/*!******************************!*\
|
|
447
|
+
!*** ./src/pdf_forms/map.ts ***!
|
|
448
|
+
\******************************/
|
|
449
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
450
|
+
|
|
451
|
+
__webpack_require__.r(__webpack_exports__);
|
|
452
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
453
|
+
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
454
|
+
/* harmony export */ });
|
|
455
|
+
var FormsMap = /** @class */ (function () {
|
|
456
|
+
function FormsMap(map) {
|
|
457
|
+
this.map = map;
|
|
458
|
+
this.res = {};
|
|
459
|
+
}
|
|
460
|
+
FormsMap.prototype.mapDataRecursive = function (data, map) {
|
|
461
|
+
var _this = this;
|
|
462
|
+
if (data === undefined || data === null)
|
|
463
|
+
return;
|
|
464
|
+
if (typeof (data) !== 'object') {
|
|
465
|
+
if (Array.isArray(map)) {
|
|
466
|
+
map.forEach(function (m) {
|
|
467
|
+
_this.mapDataRecursive(data, m);
|
|
468
|
+
});
|
|
469
|
+
return;
|
|
470
|
+
}
|
|
471
|
+
if (typeof (map) !== 'object') {
|
|
472
|
+
this.res[map] = data;
|
|
473
|
+
}
|
|
474
|
+
else {
|
|
475
|
+
this.res[map[data].field] = map[data].value;
|
|
476
|
+
}
|
|
477
|
+
return;
|
|
478
|
+
}
|
|
479
|
+
if (Array.isArray(data)) {
|
|
480
|
+
data.forEach(function (d, i) {
|
|
481
|
+
_this.mapDataRecursive(d, Array.isArray(map) ? map[i] : map);
|
|
482
|
+
});
|
|
483
|
+
return;
|
|
484
|
+
}
|
|
485
|
+
Object.keys(data).forEach(function (key) {
|
|
486
|
+
_this.mapDataRecursive(data[key], map[key]);
|
|
487
|
+
});
|
|
488
|
+
};
|
|
489
|
+
FormsMap.prototype.mapData = function (data) {
|
|
490
|
+
this.res = {};
|
|
491
|
+
this.mapDataRecursive(data, this.map);
|
|
492
|
+
return this.res;
|
|
493
|
+
};
|
|
494
|
+
return FormsMap;
|
|
495
|
+
}());
|
|
496
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (FormsMap);
|
|
497
|
+
|
|
498
|
+
|
|
499
|
+
/***/ })
|
|
500
|
+
|
|
501
|
+
/******/ });
|
|
502
|
+
/************************************************************************/
|
|
503
|
+
/******/ // The module cache
|
|
504
|
+
/******/ var __webpack_module_cache__ = {};
|
|
505
|
+
/******/
|
|
506
|
+
/******/ // The require function
|
|
507
|
+
/******/ function __webpack_require__(moduleId) {
|
|
508
|
+
/******/ // Check if module is in cache
|
|
509
|
+
/******/ var cachedModule = __webpack_module_cache__[moduleId];
|
|
510
|
+
/******/ if (cachedModule !== undefined) {
|
|
511
|
+
/******/ return cachedModule.exports;
|
|
512
|
+
/******/ }
|
|
513
|
+
/******/ // Create a new module (and put it into the cache)
|
|
514
|
+
/******/ var module = __webpack_module_cache__[moduleId] = {
|
|
515
|
+
/******/ // no module.id needed
|
|
516
|
+
/******/ // no module.loaded needed
|
|
517
|
+
/******/ exports: {}
|
|
518
|
+
/******/ };
|
|
519
|
+
/******/
|
|
520
|
+
/******/ // Execute the module function
|
|
521
|
+
/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
|
|
522
|
+
/******/
|
|
523
|
+
/******/ // Return the exports of the module
|
|
524
|
+
/******/ return module.exports;
|
|
525
|
+
/******/ }
|
|
526
|
+
/******/
|
|
527
|
+
/************************************************************************/
|
|
528
|
+
/******/ /* webpack/runtime/define property getters */
|
|
529
|
+
/******/ (() => {
|
|
530
|
+
/******/ // define getter functions for harmony exports
|
|
531
|
+
/******/ __webpack_require__.d = (exports, definition) => {
|
|
532
|
+
/******/ for(var key in definition) {
|
|
533
|
+
/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
|
|
534
|
+
/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
|
|
535
|
+
/******/ }
|
|
536
|
+
/******/ }
|
|
537
|
+
/******/ };
|
|
538
|
+
/******/ })();
|
|
539
|
+
/******/
|
|
540
|
+
/******/ /* webpack/runtime/hasOwnProperty shorthand */
|
|
541
|
+
/******/ (() => {
|
|
542
|
+
/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
|
|
543
|
+
/******/ })();
|
|
544
|
+
/******/
|
|
545
|
+
/******/ /* webpack/runtime/make namespace object */
|
|
546
|
+
/******/ (() => {
|
|
547
|
+
/******/ // define __esModule on exports
|
|
548
|
+
/******/ __webpack_require__.r = (exports) => {
|
|
549
|
+
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
|
|
550
|
+
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
551
|
+
/******/ }
|
|
552
|
+
/******/ Object.defineProperty(exports, '__esModule', { value: true });
|
|
553
|
+
/******/ };
|
|
554
|
+
/******/ })();
|
|
555
|
+
/******/
|
|
556
|
+
/************************************************************************/
|
|
557
|
+
var __webpack_exports__ = {};
|
|
558
|
+
// This entry needs to be wrapped in an IIFE because it needs to be isolated against other modules in the chunk.
|
|
559
|
+
(() => {
|
|
560
|
+
/*!******************************!*\
|
|
561
|
+
!*** ./src/entries/forms.ts ***!
|
|
562
|
+
\******************************/
|
|
563
|
+
__webpack_require__.r(__webpack_exports__);
|
|
564
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
565
|
+
/* harmony export */ PDFFormFiller: () => (/* reexport safe */ _pdf_forms_forms__WEBPACK_IMPORTED_MODULE_0__.PDFFormFiller),
|
|
566
|
+
/* harmony export */ PDFJSAdapter: () => (/* reexport safe */ _pdf_forms_adapters_pdfjs__WEBPACK_IMPORTED_MODULE_2__.PDFJSAdapter),
|
|
567
|
+
/* harmony export */ PDFLibAdapter: () => (/* reexport safe */ _pdf_forms_adapters_pdf_lib__WEBPACK_IMPORTED_MODULE_1__.PDFLibAdapter)
|
|
568
|
+
/* harmony export */ });
|
|
569
|
+
/* harmony import */ var _pdf_forms_forms__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../pdf_forms/forms */ "./src/pdf_forms/forms.ts");
|
|
570
|
+
/* harmony import */ var _pdf_forms_adapters_pdf_lib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../pdf_forms/adapters/pdf-lib */ "./src/pdf_forms/adapters/pdf-lib.ts");
|
|
571
|
+
/* harmony import */ var _pdf_forms_adapters_pdfjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../pdf_forms/adapters/pdfjs */ "./src/pdf_forms/adapters/pdfjs.ts");
|
|
572
|
+
|
|
573
|
+
|
|
574
|
+
|
|
575
|
+
|
|
576
|
+
})();
|
|
577
|
+
|
|
578
|
+
/******/ return __webpack_exports__;
|
|
579
|
+
/******/ })()
|
|
580
|
+
;
|
|
581
|
+
});
|
|
582
|
+
//# sourceMappingURL=pdf-form-filler.js.map
|