Skip to content

Commit 60a47f1

Browse files
authored
Merge pull request #112 from aspose-pdf-cloud/pdfapps-6681-added-use-cases-for-stamps
PDFAPPS-6681: added use cases for Stamps
2 parents f70472b + a131e18 commit 60a47f1

File tree

2 files changed

+151
-0
lines changed

2 files changed

+151
-0
lines changed
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
import credentials from "../../../../Credentials/credentials.json" with { type: "json" };
2+
import fs from 'node:fs/promises';
3+
import path from 'node:path';
4+
import { PdfApi } from "../../../src/api/api.js";
5+
import { Stamp } from "../../../src/models/stamp.js";
6+
import { StampType } from "../../../src/models/stampType.js";
7+
import { HorizontalAlignment } from "../../../src/models/horizontalAlignment.js";
8+
9+
const configParams = {
10+
LOCAL_FOLDER: "C:\\Samples\\",
11+
PDF_DOCUMENT_NAME: "sample.pdf",
12+
IMAGE_STAMP_FILE: "sample.png",
13+
LOCAL_RESULT_DOCUMENT_NAME: "output_sample.pdf",
14+
PAGE_NUMBER: 2, // Your document page number...
15+
TEXT_STAMP_VALUE: "NEW TEXT STAMP",
16+
IMAGE_TEXT_STAMP_VALUE: "NEW IMAGE STAMP",
17+
IMAGE_STAMP_LLY: 800,
18+
IMAGE_STAMP_WIDTH: 24,
19+
IMAGE_STAMP_HEIGHT: 24,
20+
};
21+
22+
const pdfApi = new PdfApi(credentials.id, credentials.key);
23+
24+
const pdfStamps = {
25+
async uploadFile (fileName) {
26+
const fileNamePath = path.join(configParams.LOCAL_FOLDER, fileName);
27+
const pdfFileData = await fs.readFile(fileNamePath);
28+
await pdfApi.uploadFile(fileName, pdfFileData);
29+
console.log("File '" + fileName + "' successfully uploaded!");
30+
},
31+
32+
async downloadResult () {
33+
const changedPdfData = await pdfApi.downloadFile(configParams.PDF_DOCUMENT_NAME);
34+
const filePath = path.join(configParams.LOCAL_FOLDER, configParams.LOCAL_RESULT_DOCUMENT_NAME);
35+
await fs.writeFile(filePath, changedPdfData.body);
36+
console.log("Downloaded: " + filePath);
37+
},
38+
39+
async uploadDocument () {
40+
await this.uploadFile(configParams.PDF_DOCUMENT_NAME);
41+
},
42+
43+
async addStamps () {
44+
const textStamp = new Stamp();
45+
textStamp.type = StampType.Text;
46+
textStamp.background = true;
47+
textStamp.horizontalAlignment = HorizontalAlignment.Center;
48+
textStamp.textAlignment = HorizontalAlignment.Center;
49+
textStamp.value = configParams.TEXT_STAMP_VALUE;
50+
51+
const imageStamp = new Stamp();
52+
imageStamp.type =StampType.Image;
53+
imageStamp.background = true;
54+
imageStamp.horizontalAlignment = HorizontalAlignment.Center;
55+
imageStamp.fileName = configParams.IMAGE_STAMP_FILE;
56+
imageStamp.yIndent = configParams.IMAGE_STAMP_LLY;
57+
imageStamp.width = configParams.IMAGE_STAMP_WIDTH;
58+
imageStamp.height = configParams.IMAGE_STAMP_HEIGHT;
59+
60+
const addResult = await pdfApi.postDocumentTextStamps(configParams.PDF_DOCUMENT_NAME, [ textStamp ])
61+
.then(async () => {
62+
return await pdfApi.postDocumentImageStamps(configParams.PDF_DOCUMENT_NAME, [ imageStamp ]);
63+
});
64+
65+
if (addResult.body.code == 200) {
66+
console.log("Text and image stamps added!");
67+
return true;
68+
}
69+
else
70+
console.error("Unexpected error : can't get pages!!!");
71+
},
72+
}
73+
74+
async function main() {
75+
try {
76+
await pdfStamps.uploadDocument();
77+
await pdfStamps.uploadFile(configParams.IMAGE_STAMP_FILE);
78+
await pdfStamps.addStamps();
79+
await pdfStamps.downloadResult();
80+
} catch (error) {
81+
console.error("Error:", error.message);
82+
}
83+
}
84+
85+
main();
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
import credentials from "../../../../Credentials/credentials.json" with { type: "json" };
2+
import fs from 'node:fs/promises';
3+
import path from 'node:path';
4+
import { PdfApi } from "../../../src/api/api.js";
5+
6+
const configParams = {
7+
LOCAL_FOLDER: "C:\\Samples\\",
8+
PDF_DOCUMENT_NAME: "pdf_stamp.pdf",
9+
LOCAL_RESULT_DOCUMENT_NAME: "output_sample.pdf",
10+
PAGE_NUMBER: 2, // Your document page number...
11+
STAMP_ID: "GE5TCOZQ", // Your Stamp Id to be deleted...
12+
};
13+
14+
const pdfApi = new PdfApi(credentials.id, credentials.key);
15+
16+
const pdfStamps = {
17+
async uploadDocument () {
18+
const fileNamePath = path.join(configParams.LOCAL_FOLDER, configParams.PDF_DOCUMENT_NAME);
19+
const pdfFileData = await fs.readFile(fileNamePath);
20+
await pdfApi.uploadFile(configParams.PDF_DOCUMENT_NAME, pdfFileData);
21+
console.log("File '" + configParams.PDF_DOCUMENT_NAME + "' successfully uploaded!");
22+
},
23+
24+
async downloadResult () {
25+
const changedPdfData = await pdfApi.downloadFile(configParams.PDF_DOCUMENT_NAME);
26+
const filePath = path.join(configParams.LOCAL_FOLDER, configParams.LOCAL_RESULT_DOCUMENT_NAME);
27+
await fs.writeFile(filePath, changedPdfData.body);
28+
console.log("Downloaded: " + filePath);
29+
},
30+
31+
async deletePageStamps () {
32+
const addResult = await pdfApi.deletePageStamps(configParams.PDF_DOCUMENT_NAME, configParams.PAGE_NUMBER);
33+
34+
if (addResult.body.code == 200) {
35+
console.log("Pdf page stamps on page #" + configParams.PAGE_NUMBER + " deleted!");
36+
return true;
37+
}
38+
else
39+
console.error("Unexpected error : can't get pages!!!");
40+
},
41+
42+
async deletePageStampById (stamp_id) {
43+
const addResult = await pdfApi.deleteStamp(configParams.PDF_DOCUMENT_NAME, stamp_id);
44+
45+
if (addResult.body.code == 200) {
46+
console.log("Pdf stamps " + stamp_id + " deleted!");
47+
return true;
48+
}
49+
else
50+
console.error("Unexpected error : can't get pages!!!");
51+
},
52+
53+
}
54+
55+
async function main() {
56+
try {
57+
await pdfStamps.uploadDocument();
58+
await pdfStamps.deletePageStampById(configParams.STAMP_ID);
59+
await pdfStamps.deletePageStamps();
60+
await pdfStamps.downloadResult();
61+
} catch (error) {
62+
console.error("Error:", error.message);
63+
}
64+
}
65+
66+
main();

0 commit comments

Comments
 (0)