1
+ import credentials from "../../../Credentials/credentials.json" with { type : "json" } ; // json-file in this format: { "id": "*****", "key": "*******" }
2
+ import fs from 'node:fs/promises' ;
3
+ import path from 'node:path' ;
4
+ import { PdfApi } from "../../src/api/api.js" ;
5
+ import { DocumentConfig } from "../../src/models/documentConfig.js"
6
+ import { DocumentProperties } from "../../src/models/documentProperties.js"
7
+ import { DocumentProperty } from "../../src/models/documentProperty.js"
8
+ import { DisplayProperties } from "../../src/models/displayProperties.js"
9
+ import { DefaultPageConfig } from "../../src/models/defaultPageConfig.js"
10
+ import { Direction } from "../../src/models/direction.js" ;
11
+ import { PageMode } from "../../src/models/pageMode.js" ;
12
+ import { PageLayout } from "../../src/models/pageLayout.js" ;
13
+
14
+ const configParams = {
15
+ LOCAL_FOLDER : "C:\\Samples\\" ,
16
+ TEMP_FOLDER : 'TempPdfCloud' ,
17
+ LOCAL_RESULT_DOCUMENT_NAME : "output_sample.pdf" ,
18
+ PAGE_WIDTH : 590 ,
19
+ PAGE_HEIGHT : 894 ,
20
+ PAGES_COUNT : 5 ,
21
+ } ;
22
+
23
+ const pdfApi = new PdfApi ( credentials . id , credentials . key ) ;
24
+
25
+ const PdfPageChanges = {
26
+ async downloadResult ( ) {
27
+ const fileName = path . join ( configParams . TEMP_FOLDER , configParams . LOCAL_RESULT_DOCUMENT_NAME ) ;
28
+ const changedPdfData = await pdfApi . downloadFile ( fileName ) ;
29
+ const filePath = path . join ( configParams . LOCAL_FOLDER , configParams . LOCAL_RESULT_DOCUMENT_NAME ) ;
30
+ await fs . writeFile ( filePath , changedPdfData . body ) ;
31
+ console . log ( "Downloaded: " + filePath ) ;
32
+ } ,
33
+
34
+ async createPdfDocument ( ) {
35
+ const pdfConfig = new DocumentConfig ( ) ;
36
+ pdfConfig . pagesCount = configParams . PAGES_COUNT ;
37
+
38
+ pdfConfig . displayProperties = new DisplayProperties ( ) ;
39
+ pdfConfig . displayProperties . centerWindow = true ;
40
+ pdfConfig . displayProperties . hideMenuBar = true ;
41
+ pdfConfig . displayProperties . direction = Direction . L2R ;
42
+ pdfConfig . displayProperties . displayDocTitle = true ;
43
+ pdfConfig . displayProperties . hideToolBar = true ;
44
+ pdfConfig . displayProperties . hideWindowUI = true ;
45
+ pdfConfig . displayProperties . nonFullScreenPageMode = PageMode . UseThumbs ;
46
+ pdfConfig . displayProperties . pageLayout = PageLayout . TwoPageLeft ;
47
+ pdfConfig . displayProperties . pageMode = PageMode . UseThumbs ;
48
+
49
+ pdfConfig . documentProperties = new DocumentProperties ( ) ;
50
+ const docProperty = new DocumentProperty ( ) ;
51
+ docProperty . builtIn = false ;
52
+ docProperty . name = "prop1" ;
53
+ docProperty . value = "Val1" ;
54
+
55
+ pdfConfig . documentProperties . list = [ docProperty ] ;
56
+
57
+ pdfConfig . defaultPageConfig = new DefaultPageConfig ( ) ;
58
+ pdfConfig . defaultPageConfig . height = configParams . CROP_HEIGHT ;
59
+ pdfConfig . defaultPageConfig . width = configParams . CROP_WIDTH ;
60
+
61
+ const response = await pdfApi . postCreateDocument ( configParams . LOCAL_RESULT_DOCUMENT_NAME , pdfConfig , null , configParams . TEMP_FOLDER ) ;
62
+ console . log ( "Document #" + configParams . LOCAL_RESULT_DOCUMENT_NAME + " created." )
63
+ return response ;
64
+ } ,
65
+ } ;
66
+
67
+ async function main ( ) {
68
+ try {
69
+ await PdfPageChanges . createPdfDocument ( ) ;
70
+ await PdfPageChanges . downloadResult ( ) ;
71
+ } catch ( error ) {
72
+ console . error ( "Error:" , error . message ) ;
73
+ }
74
+ }
75
+
76
+ main ( ) ;
0 commit comments