d5-api-initializer 1.4.0 → 1.5.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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "d5-api-initializer",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.5.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"dependencies": {},
|
|
6
6
|
"main": "publish/cjs/d5-api-initializer",
|
|
@@ -35,13 +35,13 @@
|
|
|
35
35
|
"@types/node": "20.11.16",
|
|
36
36
|
"archiver": "6.0.1",
|
|
37
37
|
"copy-webpack-plugin": "^11.0.0",
|
|
38
|
-
"webpack": "5.
|
|
39
|
-
"webpack-cli": "
|
|
40
|
-
"dotenv": "
|
|
38
|
+
"webpack": "5.98.0",
|
|
39
|
+
"webpack-cli": "6.0.1",
|
|
40
|
+
"dotenv": "16.4.7",
|
|
41
41
|
"eslint": "7.19.0",
|
|
42
42
|
"rimraf": "5.0.5",
|
|
43
|
-
"ts-loader": "
|
|
43
|
+
"ts-loader": "9.5.2",
|
|
44
44
|
"tsup": "7.0.0",
|
|
45
|
-
"typescript": "5.
|
|
45
|
+
"typescript": "5.7.3"
|
|
46
46
|
}
|
|
47
47
|
}
|
|
@@ -606,6 +606,76 @@ var ApiCore = class {
|
|
|
606
606
|
*/
|
|
607
607
|
};
|
|
608
608
|
|
|
609
|
+
// src/typeUtils.ts
|
|
610
|
+
var types = {
|
|
611
|
+
"[object Array]": "array",
|
|
612
|
+
"[object Date]": "date",
|
|
613
|
+
"[object Object]": "object",
|
|
614
|
+
"[object String]": "string",
|
|
615
|
+
"[object Null]": "null"
|
|
616
|
+
};
|
|
617
|
+
var type = function(object) {
|
|
618
|
+
const typeOfObject = Object.prototype.toString.call(object);
|
|
619
|
+
return typeof object === "object" ? types[typeOfObject] || "object" : typeof object;
|
|
620
|
+
};
|
|
621
|
+
var isDate = function(object) {
|
|
622
|
+
return type(object) === "date";
|
|
623
|
+
};
|
|
624
|
+
var isUndefined = (val) => val === void 0;
|
|
625
|
+
var isDefined = function(value) {
|
|
626
|
+
return value !== null && !isUndefined(value);
|
|
627
|
+
};
|
|
628
|
+
var isFunction = function(object) {
|
|
629
|
+
return typeof object === "function";
|
|
630
|
+
};
|
|
631
|
+
var isObject = function(value) {
|
|
632
|
+
return type(value) === "object" && !isNull(value) && !isArray(value) && !isDate(value);
|
|
633
|
+
};
|
|
634
|
+
var isNull = function(value) {
|
|
635
|
+
return type(value) === "null";
|
|
636
|
+
};
|
|
637
|
+
var isArray = function(value) {
|
|
638
|
+
return type(value) === "array";
|
|
639
|
+
};
|
|
640
|
+
|
|
641
|
+
// src/classes/addWaterMark.ts
|
|
642
|
+
var convertSourceTypeToLoadParams = (params) => {
|
|
643
|
+
if (params.sourceType === "report") {
|
|
644
|
+
return {
|
|
645
|
+
report: params.config
|
|
646
|
+
};
|
|
647
|
+
}
|
|
648
|
+
return params.config;
|
|
649
|
+
};
|
|
650
|
+
function addWatermarkToPdf(jsWapiRequest, params) {
|
|
651
|
+
params.watermarks.forEach((watermark) => {
|
|
652
|
+
if (!isDefined(watermark.position))
|
|
653
|
+
throw new Error("Position is undefined for watermark");
|
|
654
|
+
if (!isObject(watermark.position) && !isFunction(watermark.position))
|
|
655
|
+
throw new Error("Position must be type of object or function");
|
|
656
|
+
});
|
|
657
|
+
jsWapiRequest.pdf().load({
|
|
658
|
+
...convertSourceTypeToLoadParams(params.sourcePdf),
|
|
659
|
+
callback: (origPdf) => {
|
|
660
|
+
params.watermarks.forEach((watermark) => {
|
|
661
|
+
jsWapiRequest.pdf().load({
|
|
662
|
+
...convertSourceTypeToLoadParams(watermark),
|
|
663
|
+
callback: (stampPdf) => {
|
|
664
|
+
if (isObject(watermark.position)) {
|
|
665
|
+
const position = watermark.position;
|
|
666
|
+
origPdf.overlay(stampPdf, { page: position.page, x: position.x, y: position.y });
|
|
667
|
+
}
|
|
668
|
+
if (typeof watermark.position === "function") {
|
|
669
|
+
origPdf.overlay(stampPdf, watermark.position(origPdf, stampPdf));
|
|
670
|
+
}
|
|
671
|
+
}
|
|
672
|
+
});
|
|
673
|
+
});
|
|
674
|
+
origPdf.save(params.saveConfig);
|
|
675
|
+
}
|
|
676
|
+
});
|
|
677
|
+
}
|
|
678
|
+
|
|
609
679
|
// src/classes/ApiRequest.ts
|
|
610
680
|
var ApiRequest = class {
|
|
611
681
|
constructor(jsWapiRequest, objectName) {
|
|
@@ -836,6 +906,9 @@ var ApiRequest = class {
|
|
|
836
906
|
newApiInvoker(objectName, operName) {
|
|
837
907
|
return new ApiInvoker(this.newJSWapiInvoker(objectName, operName), objectName);
|
|
838
908
|
}
|
|
909
|
+
addWatermarkToPdf(params) {
|
|
910
|
+
addWatermarkToPdf(this._jsWapiRequest, params);
|
|
911
|
+
}
|
|
839
912
|
/**
|
|
840
913
|
* Переводит и форматирует строку из словаря переводов согласно текущего языка приложения.
|
|
841
914
|
* @param msgKey
|
|
@@ -42,9 +42,27 @@ declare namespace jsWapi {
|
|
|
42
42
|
getParams(): any;
|
|
43
43
|
getUserId(): number;
|
|
44
44
|
getPage(): number;
|
|
45
|
+
addSorts(sorts: string[]): JSWapiRequest;
|
|
46
|
+
putAggregatedColumns(columns: any): JSWapiRequest;
|
|
47
|
+
addColumns(columns: string[]): JSWapiRequest;
|
|
48
|
+
putNestedColumns(columns: Record<string, any>): JSWapiRequest;
|
|
49
|
+
putFilters(filters: IFiltersCollection): JSWapiRequest;
|
|
50
|
+
putParam(params: Record<string, any>): JSWapiRequest;
|
|
51
|
+
removeSorts(sortsNames: string[]): JSWapiRequest;
|
|
52
|
+
removeColumns(columnsNames: string[]): JSWapiRequest;
|
|
53
|
+
removeAggregatedColumns(aggregatedColumnsNames: string[]): JSWapiRequest;
|
|
54
|
+
removeNestedColumns(nestedColumnsNames: string[]): JSWapiRequest;
|
|
55
|
+
removeParams(paramsNames: string[]): JSWapiRequest;
|
|
56
|
+
removeFilters(filtersNames: string[]): JSWapiRequest;
|
|
57
|
+
isFilterExists(filterName: string): boolean;
|
|
58
|
+
invoke(): JSWapiResponse;
|
|
59
|
+
newJSWapiInvoker(objectName: string, operName: string): JSWapiInvoker;
|
|
45
60
|
getFirstRows(): number;
|
|
46
61
|
getRowsPerPage(): number;
|
|
47
62
|
getLanguage(): string;
|
|
63
|
+
pdf(): JSWapiPdf;
|
|
64
|
+
getMultiFileAsString(...arg: string[]): any;
|
|
65
|
+
getMultiExcelFileAsJson(...arg: string[]): any;
|
|
48
66
|
getRequest(object: string): Record<string, any>[];
|
|
49
67
|
getFilter(filterName: string): any;
|
|
50
68
|
getFilterEqualOneValue(filterName: string): any;
|
|
@@ -61,6 +79,7 @@ declare namespace jsWapi {
|
|
|
61
79
|
setRowsPerPage(number: number): JSWapiRequest;
|
|
62
80
|
setFirstRows(number: number): JSWapiRequest;
|
|
63
81
|
setRequest(request: any): JSWapiRequest;
|
|
82
|
+
putRequest(objectName: string, req: any): JSWapiRequest;
|
|
64
83
|
setHierarchy(parentColumn: string, requestKind?: number): JSWapiRequest;
|
|
65
84
|
};
|
|
66
85
|
type JSWapiResponse = {
|
|
@@ -142,6 +161,64 @@ declare namespace jsWapi {
|
|
|
142
161
|
putJSWapiOper(operation: string, callback: (request: JSWapiRequest, response: JSWapiResponse) => void): void;
|
|
143
162
|
}
|
|
144
163
|
function setJSWapiObject(init: (object: JSWapiApplication) => void): void;
|
|
164
|
+
type JSWapiPdfLoadParamsObject = {
|
|
165
|
+
object: string;
|
|
166
|
+
field: string;
|
|
167
|
+
keyValue: any;
|
|
168
|
+
callback: (pdf: JSWapiPdfDocument) => void;
|
|
169
|
+
};
|
|
170
|
+
type JSWapiPdfLoadParamsReport = {
|
|
171
|
+
report: {
|
|
172
|
+
type: 'dx' | 'xls';
|
|
173
|
+
name: string;
|
|
174
|
+
params: Record<string, any>;
|
|
175
|
+
} | {
|
|
176
|
+
type: 'tax';
|
|
177
|
+
code: string;
|
|
178
|
+
params: Record<string, any>;
|
|
179
|
+
};
|
|
180
|
+
callback: (pdf: JSWapiPdfDocument) => void;
|
|
181
|
+
};
|
|
182
|
+
type JSWapiPdfLoadParams = JSWapiPdfLoadParamsObject | JSWapiPdfLoadParamsReport;
|
|
183
|
+
type JSWapiStampPosition = {
|
|
184
|
+
page: number;
|
|
185
|
+
x: number;
|
|
186
|
+
y: number;
|
|
187
|
+
};
|
|
188
|
+
interface JSWapiPdfDocument {
|
|
189
|
+
save(params: {
|
|
190
|
+
object: string;
|
|
191
|
+
keyValue: any;
|
|
192
|
+
field: string;
|
|
193
|
+
fileName: string;
|
|
194
|
+
}): void;
|
|
195
|
+
/**
|
|
196
|
+
* На поточний документ накласти печать stampPdf
|
|
197
|
+
* @param stampPdf PDF документ на который будет наложено текущий документ
|
|
198
|
+
* @param params
|
|
199
|
+
* @param params.page номер страницы, на которую накладывать. Если page < 0, то нумерация с конца (т.е. page = -1 - последняя страница)
|
|
200
|
+
* @param params.x координата левого угла в мм
|
|
201
|
+
* @param params.y координата верхнего угла в мм
|
|
202
|
+
*/
|
|
203
|
+
overlay(stampPdf: JSWapiPdfDocument, params: JSWapiStampPosition): void;
|
|
204
|
+
/**
|
|
205
|
+
* Ширина страницы в мм
|
|
206
|
+
* @param pageNumber Номер страницы. Если pageNumber < 0, то нумеровать с конца
|
|
207
|
+
*/
|
|
208
|
+
getPageWidth(pageNumber: number): number;
|
|
209
|
+
/**
|
|
210
|
+
* Высота страницы в мм
|
|
211
|
+
* @param pageNumber Номер страницы. Если pageNumber < 0, то нумеровать с конца
|
|
212
|
+
*/
|
|
213
|
+
getPageHeight(pageNumber: number): number;
|
|
214
|
+
/**
|
|
215
|
+
* Количество страниц
|
|
216
|
+
*/
|
|
217
|
+
getPageCount(): number;
|
|
218
|
+
}
|
|
219
|
+
interface JSWapiPdf {
|
|
220
|
+
load(params: JSWapiPdfLoadParams): JSWapiPdf;
|
|
221
|
+
}
|
|
145
222
|
}
|
|
146
223
|
|
|
147
224
|
declare class FileLink {
|
|
@@ -258,10 +335,34 @@ declare class ApiInvoker implements IInvoker$1<ApiInvoker> {
|
|
|
258
335
|
invoke(): ApiResponse;
|
|
259
336
|
}
|
|
260
337
|
|
|
338
|
+
type SourceTypeReport = {
|
|
339
|
+
sourceType: 'report';
|
|
340
|
+
config: jsWapi.JSWapiPdfLoadParamsReport['report'];
|
|
341
|
+
};
|
|
342
|
+
type SourceTypeObject = {
|
|
343
|
+
sourceType: 'object';
|
|
344
|
+
config: Omit<jsWapi.JSWapiPdfLoadParamsObject, 'callback'>;
|
|
345
|
+
};
|
|
346
|
+
type SourceTypeList = SourceTypeReport | SourceTypeObject;
|
|
347
|
+
type SaveConfig = {
|
|
348
|
+
object: string;
|
|
349
|
+
keyValue: any;
|
|
350
|
+
field: string;
|
|
351
|
+
fileName: string;
|
|
352
|
+
};
|
|
353
|
+
type WaterMarkSourceType = SourceTypeList & {
|
|
354
|
+
position: ((sourcePdf: jsWapi.JSWapiPdfDocument, stampPdf: jsWapi.JSWapiPdfDocument) => jsWapi.JSWapiStampPosition) | jsWapi.JSWapiStampPosition;
|
|
355
|
+
};
|
|
356
|
+
type AddWatermarkToPdfParams = {
|
|
357
|
+
sourcePdf: SourceTypeList;
|
|
358
|
+
watermarks: Array<WaterMarkSourceType>;
|
|
359
|
+
saveConfig: SaveConfig;
|
|
360
|
+
};
|
|
361
|
+
|
|
261
362
|
declare class ApiRequest {
|
|
262
363
|
private _jsWapiRequest;
|
|
263
364
|
private readonly _objectName;
|
|
264
|
-
constructor(jsWapiRequest:
|
|
365
|
+
constructor(jsWapiRequest: jsWapi.JSWapiRequest, objectName: string);
|
|
265
366
|
get objectName(): string;
|
|
266
367
|
get columns(): string[];
|
|
267
368
|
get aggregatedColumns(): IMappedCollection;
|
|
@@ -336,8 +437,9 @@ declare class ApiRequest {
|
|
|
336
437
|
removeFilters(filtersNames: string[]): ApiRequest;
|
|
337
438
|
hasFilter(filterName: string): boolean;
|
|
338
439
|
invoke(): ApiResponse;
|
|
339
|
-
newJSWapiInvoker(objectName: string, operName: string):
|
|
440
|
+
newJSWapiInvoker(objectName: string, operName: string): jsWapi.JSWapiInvoker;
|
|
340
441
|
newApiInvoker(objectName: string, operName: string): ApiInvoker;
|
|
442
|
+
addWatermarkToPdf(params: AddWatermarkToPdfParams): void;
|
|
341
443
|
/**
|
|
342
444
|
* Переводит и форматирует строку из словаря переводов согласно текущего языка приложения.
|
|
343
445
|
* @param msgKey
|
|
@@ -440,22 +542,25 @@ declare class ApiHttpResponse {
|
|
|
440
542
|
}
|
|
441
543
|
|
|
442
544
|
interface IFilterValue {
|
|
443
|
-
'='?: string | number | Array<string | number>;
|
|
444
|
-
'
|
|
445
|
-
'
|
|
446
|
-
'
|
|
447
|
-
'
|
|
448
|
-
'
|
|
449
|
-
'
|
|
450
|
-
'
|
|
451
|
-
'
|
|
545
|
+
'='?: string | number | null | Array<string | number>;
|
|
546
|
+
'=~'?: string | null | Array<string>;
|
|
547
|
+
'>'?: string | number;
|
|
548
|
+
'>='?: string | number;
|
|
549
|
+
'<'?: string | number;
|
|
550
|
+
'<='?: string | number;
|
|
551
|
+
'!='?: string | number | null | Array<string | number>;
|
|
552
|
+
'<>'?: string | number | null | Array<string | number>;
|
|
553
|
+
'between'?: [string | number, string | number];
|
|
554
|
+
'like'?: string | number;
|
|
555
|
+
'%'?: string;
|
|
556
|
+
'%~'?: string;
|
|
452
557
|
}
|
|
453
558
|
interface IFilter {
|
|
454
559
|
[fieldName: string]: IFilterValue;
|
|
455
560
|
}
|
|
456
|
-
|
|
457
|
-
[
|
|
458
|
-
}
|
|
561
|
+
type IFiltersCollection = {
|
|
562
|
+
[fieldName: string]: IFilterValue | IFilterValue[] | IFiltersCollection[];
|
|
563
|
+
};
|
|
459
564
|
interface IMappedCollection {
|
|
460
565
|
[name: string]: any;
|
|
461
566
|
}
|
|
@@ -567,6 +567,76 @@ var ApiCore = class {
|
|
|
567
567
|
*/
|
|
568
568
|
};
|
|
569
569
|
|
|
570
|
+
// src/typeUtils.ts
|
|
571
|
+
var types = {
|
|
572
|
+
"[object Array]": "array",
|
|
573
|
+
"[object Date]": "date",
|
|
574
|
+
"[object Object]": "object",
|
|
575
|
+
"[object String]": "string",
|
|
576
|
+
"[object Null]": "null"
|
|
577
|
+
};
|
|
578
|
+
var type = function(object) {
|
|
579
|
+
const typeOfObject = Object.prototype.toString.call(object);
|
|
580
|
+
return typeof object === "object" ? types[typeOfObject] || "object" : typeof object;
|
|
581
|
+
};
|
|
582
|
+
var isDate = function(object) {
|
|
583
|
+
return type(object) === "date";
|
|
584
|
+
};
|
|
585
|
+
var isUndefined = (val) => val === void 0;
|
|
586
|
+
var isDefined = function(value) {
|
|
587
|
+
return value !== null && !isUndefined(value);
|
|
588
|
+
};
|
|
589
|
+
var isFunction = function(object) {
|
|
590
|
+
return typeof object === "function";
|
|
591
|
+
};
|
|
592
|
+
var isObject = function(value) {
|
|
593
|
+
return type(value) === "object" && !isNull(value) && !isArray(value) && !isDate(value);
|
|
594
|
+
};
|
|
595
|
+
var isNull = function(value) {
|
|
596
|
+
return type(value) === "null";
|
|
597
|
+
};
|
|
598
|
+
var isArray = function(value) {
|
|
599
|
+
return type(value) === "array";
|
|
600
|
+
};
|
|
601
|
+
|
|
602
|
+
// src/classes/addWaterMark.ts
|
|
603
|
+
var convertSourceTypeToLoadParams = (params) => {
|
|
604
|
+
if (params.sourceType === "report") {
|
|
605
|
+
return {
|
|
606
|
+
report: params.config
|
|
607
|
+
};
|
|
608
|
+
}
|
|
609
|
+
return params.config;
|
|
610
|
+
};
|
|
611
|
+
function addWatermarkToPdf(jsWapiRequest, params) {
|
|
612
|
+
params.watermarks.forEach((watermark) => {
|
|
613
|
+
if (!isDefined(watermark.position))
|
|
614
|
+
throw new Error("Position is undefined for watermark");
|
|
615
|
+
if (!isObject(watermark.position) && !isFunction(watermark.position))
|
|
616
|
+
throw new Error("Position must be type of object or function");
|
|
617
|
+
});
|
|
618
|
+
jsWapiRequest.pdf().load({
|
|
619
|
+
...convertSourceTypeToLoadParams(params.sourcePdf),
|
|
620
|
+
callback: (origPdf) => {
|
|
621
|
+
params.watermarks.forEach((watermark) => {
|
|
622
|
+
jsWapiRequest.pdf().load({
|
|
623
|
+
...convertSourceTypeToLoadParams(watermark),
|
|
624
|
+
callback: (stampPdf) => {
|
|
625
|
+
if (isObject(watermark.position)) {
|
|
626
|
+
const position = watermark.position;
|
|
627
|
+
origPdf.overlay(stampPdf, { page: position.page, x: position.x, y: position.y });
|
|
628
|
+
}
|
|
629
|
+
if (typeof watermark.position === "function") {
|
|
630
|
+
origPdf.overlay(stampPdf, watermark.position(origPdf, stampPdf));
|
|
631
|
+
}
|
|
632
|
+
}
|
|
633
|
+
});
|
|
634
|
+
});
|
|
635
|
+
origPdf.save(params.saveConfig);
|
|
636
|
+
}
|
|
637
|
+
});
|
|
638
|
+
}
|
|
639
|
+
|
|
570
640
|
// src/classes/ApiRequest.ts
|
|
571
641
|
var ApiRequest = class {
|
|
572
642
|
constructor(jsWapiRequest, objectName) {
|
|
@@ -797,6 +867,9 @@ var ApiRequest = class {
|
|
|
797
867
|
newApiInvoker(objectName, operName) {
|
|
798
868
|
return new ApiInvoker(this.newJSWapiInvoker(objectName, operName), objectName);
|
|
799
869
|
}
|
|
870
|
+
addWatermarkToPdf(params) {
|
|
871
|
+
addWatermarkToPdf(this._jsWapiRequest, params);
|
|
872
|
+
}
|
|
800
873
|
/**
|
|
801
874
|
* Переводит и форматирует строку из словаря переводов согласно текущего языка приложения.
|
|
802
875
|
* @param msgKey
|
|
@@ -567,6 +567,76 @@ var ApiCore = class {
|
|
|
567
567
|
*/
|
|
568
568
|
};
|
|
569
569
|
|
|
570
|
+
// src/typeUtils.ts
|
|
571
|
+
var types = {
|
|
572
|
+
"[object Array]": "array",
|
|
573
|
+
"[object Date]": "date",
|
|
574
|
+
"[object Object]": "object",
|
|
575
|
+
"[object String]": "string",
|
|
576
|
+
"[object Null]": "null"
|
|
577
|
+
};
|
|
578
|
+
var type = function(object) {
|
|
579
|
+
const typeOfObject = Object.prototype.toString.call(object);
|
|
580
|
+
return typeof object === "object" ? types[typeOfObject] || "object" : typeof object;
|
|
581
|
+
};
|
|
582
|
+
var isDate = function(object) {
|
|
583
|
+
return type(object) === "date";
|
|
584
|
+
};
|
|
585
|
+
var isUndefined = (val) => val === void 0;
|
|
586
|
+
var isDefined = function(value) {
|
|
587
|
+
return value !== null && !isUndefined(value);
|
|
588
|
+
};
|
|
589
|
+
var isFunction = function(object) {
|
|
590
|
+
return typeof object === "function";
|
|
591
|
+
};
|
|
592
|
+
var isObject = function(value) {
|
|
593
|
+
return type(value) === "object" && !isNull(value) && !isArray(value) && !isDate(value);
|
|
594
|
+
};
|
|
595
|
+
var isNull = function(value) {
|
|
596
|
+
return type(value) === "null";
|
|
597
|
+
};
|
|
598
|
+
var isArray = function(value) {
|
|
599
|
+
return type(value) === "array";
|
|
600
|
+
};
|
|
601
|
+
|
|
602
|
+
// src/classes/addWaterMark.ts
|
|
603
|
+
var convertSourceTypeToLoadParams = (params) => {
|
|
604
|
+
if (params.sourceType === "report") {
|
|
605
|
+
return {
|
|
606
|
+
report: params.config
|
|
607
|
+
};
|
|
608
|
+
}
|
|
609
|
+
return params.config;
|
|
610
|
+
};
|
|
611
|
+
function addWatermarkToPdf(jsWapiRequest, params) {
|
|
612
|
+
params.watermarks.forEach((watermark) => {
|
|
613
|
+
if (!isDefined(watermark.position))
|
|
614
|
+
throw new Error("Position is undefined for watermark");
|
|
615
|
+
if (!isObject(watermark.position) && !isFunction(watermark.position))
|
|
616
|
+
throw new Error("Position must be type of object or function");
|
|
617
|
+
});
|
|
618
|
+
jsWapiRequest.pdf().load({
|
|
619
|
+
...convertSourceTypeToLoadParams(params.sourcePdf),
|
|
620
|
+
callback: (origPdf) => {
|
|
621
|
+
params.watermarks.forEach((watermark) => {
|
|
622
|
+
jsWapiRequest.pdf().load({
|
|
623
|
+
...convertSourceTypeToLoadParams(watermark),
|
|
624
|
+
callback: (stampPdf) => {
|
|
625
|
+
if (isObject(watermark.position)) {
|
|
626
|
+
const position = watermark.position;
|
|
627
|
+
origPdf.overlay(stampPdf, { page: position.page, x: position.x, y: position.y });
|
|
628
|
+
}
|
|
629
|
+
if (typeof watermark.position === "function") {
|
|
630
|
+
origPdf.overlay(stampPdf, watermark.position(origPdf, stampPdf));
|
|
631
|
+
}
|
|
632
|
+
}
|
|
633
|
+
});
|
|
634
|
+
});
|
|
635
|
+
origPdf.save(params.saveConfig);
|
|
636
|
+
}
|
|
637
|
+
});
|
|
638
|
+
}
|
|
639
|
+
|
|
570
640
|
// src/classes/ApiRequest.ts
|
|
571
641
|
var ApiRequest = class {
|
|
572
642
|
constructor(jsWapiRequest, objectName) {
|
|
@@ -797,6 +867,9 @@ var ApiRequest = class {
|
|
|
797
867
|
newApiInvoker(objectName, operName) {
|
|
798
868
|
return new ApiInvoker(this.newJSWapiInvoker(objectName, operName), objectName);
|
|
799
869
|
}
|
|
870
|
+
addWatermarkToPdf(params) {
|
|
871
|
+
addWatermarkToPdf(this._jsWapiRequest, params);
|
|
872
|
+
}
|
|
800
873
|
/**
|
|
801
874
|
* Переводит и форматирует строку из словаря переводов согласно текущего языка приложения.
|
|
802
875
|
* @param msgKey
|