Skip to content

Commit 98a0f3e

Browse files
authored
Merge pull request #127 from aspose-pdf-cloud/pdfcloud-4840-added-use-cases-for-create-pdf
PDFCLOUD-4840: added use cases for Create PDF
2 parents 15d40e4 + d65b91a commit 98a0f3e

File tree

1 file changed

+76
-0
lines changed

1 file changed

+76
-0
lines changed

UsesCases/CreateDocument/createPdf.js

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
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

Comments
 (0)