From 7fc4e864c2d5c9965a13837dc52f851f404705c8 Mon Sep 17 00:00:00 2001 From: Dmitriy-Xawstov Date: Fri, 30 May 2025 00:24:48 +0300 Subject: [PATCH] PDFCLOUD-4980: added snippets for Compare --- UsesCases/Compares/comparePdfDocuments.js | 34 +++++++++++++++++++++++ UsesCases/Compares/comparesHelper.js | 25 +++++++++++++++++ UsesCases/Compares/comparesLaunch.js | 11 ++++++++ 3 files changed, 70 insertions(+) create mode 100644 UsesCases/Compares/comparePdfDocuments.js create mode 100644 UsesCases/Compares/comparesHelper.js create mode 100644 UsesCases/Compares/comparesLaunch.js diff --git a/UsesCases/Compares/comparePdfDocuments.js b/UsesCases/Compares/comparePdfDocuments.js new file mode 100644 index 00000000..674b8580 --- /dev/null +++ b/UsesCases/Compares/comparePdfDocuments.js @@ -0,0 +1,34 @@ +import path from 'node:path'; +import { pdfComparesHelper, pdfApi } from "../Compares/comparesHelper.js"; + +export const configParams = { + LOCAL_FOLDER: "C:\\Samples\\", + REMOTE_FOLDER: "Your_Temp_Pdf_Cloud", + PDF_DOCUMENT_1: "sample_compare_1.pdf", + PDF_DOCUMENT_2: "sample_compare_2.pdf", + PDF_OUTPUT: "output_compare.pdf", + REMOTE_FOLDER: "Your_Temp_Pdf_Cloud", +}; + +export const pdfCompares = { + async comparePdfDocuments(document1, document2, output_document) { + await pdfComparesHelper.uploadFile(document1, configParams.LOCAL_FOLDER, configParams.REMOTE_FOLDER); + await pdfComparesHelper.uploadFile(document2, configParams.LOCAL_FOLDER, configParams.REMOTE_FOLDER); + + const remotePdf1 = path.join(configParams.REMOTE_FOLDER, document1); + const remotePdf2 = path.join(configParams.REMOTE_FOLDER, document2); + var remotePdfOut = path.join(configParams.REMOTE_FOLDER, output_document); + + const response = await pdfApi.postComparePdf(remotePdf1, remotePdf2, remotePdfOut); + + if (response.body.code != 200) { + console.log("Unexpected error!"); + } + else{ + console.log("Compare was successful!y finished in '" + output_document + "' file."); + await pdfComparesHelper.downloadResult(output_document, configParams.LOCAL_FOLDER, configParams.REMOTE_FOLDER); + } + + } + +}; diff --git a/UsesCases/Compares/comparesHelper.js b/UsesCases/Compares/comparesHelper.js new file mode 100644 index 00000000..207a5090 --- /dev/null +++ b/UsesCases/Compares/comparesHelper.js @@ -0,0 +1,25 @@ +import credentials from "../../../Credentials/credentials.json" with { type: "json" }; +import fs from 'node:fs/promises'; +import path from 'node:path'; +import { PdfApi } from "../../src/api/api.js"; + +export const pdfApi = new PdfApi(credentials.id, credentials.key); + +export const pdfComparesHelper = { + async uploadFile (fileName, localFolder, remoteFolder) { + const localFilePath = path.join(localFolder, fileName); + const fileData = await fs.readFile(localFilePath); + const remoteFilePath = path.join(remoteFolder, fileName); + await pdfApi.uploadFile(remoteFilePath, fileData); + console.log("Uploaded: " + fileName); + }, + + async downloadResult (fileName, localFolder, remoteFolder) { + const remoteFilePath = path.join(remoteFolder, fileName); + const changedPdfData = await pdfApi.downloadFile(remoteFilePath); + const localFilePath = path.join(localFolder, fileName); + await fs.writeFile(localFilePath, changedPdfData.body); + console.log("Downloaded: " + localFilePath); + }, + +}; diff --git a/UsesCases/Compares/comparesLaunch.js b/UsesCases/Compares/comparesLaunch.js new file mode 100644 index 00000000..e9f83cee --- /dev/null +++ b/UsesCases/Compares/comparesLaunch.js @@ -0,0 +1,11 @@ +import { pdfCompares, configParams } from "../Compares/comparePdfDocuments.js"; + +async function main() { + try { + await pdfCompares.comparePdfDocuments(configParams.PDF_DOCUMENT_1, configParams.PDF_DOCUMENT_2, configParams.PDF_OUTPUT); + } catch (error) { + console.error("Error:", error.message); + } +} + +await main(); \ No newline at end of file