easypdfcloud-node

A Node library for easyPDF Cloud API https://www.easypdfcloud.com/developer/reference
The easyPDF Cloud API is a cloud-based platform that allows PDF generation, conversion and automation.
This easy-to-use tool eliminates the need for separate APIs for different file formats and works with Word, Excel, PowerPoint, HTML, and images.
To get started, sign up for free and then get your API access credentials from the developer information page.
For detailed information about the easyPDF Cloud API, visit the API reference page.
Installation
npm install easypdfcloud-node
Usage
Using pre-created workflow (workflow ID)
You can create a workflow by connecting series of workflow tasks with mouse drag & drop from easyPDF Cloud website. After creating a new workflow, you can get its workflow ID from the developer information page.
Promise
"use strict";
const fs = require('fs');
const easyPdfCloud = require('easypdfcloud-node');
const clientConfig = new easyPdfCloud.ClientConfig('<client ID>', '<client secret>');
const client = new easyPdfCloud.Client(clientConfig);
const inputFileBuffer = fs.readFileSync('/Users/someone/input.docx');
const inputFileData = new easyPdfCloud.FileData('input.docx', Uint8Array.from(inputFileBuffer));
console.log('Start new job ...');
client.startNewJob('<workflow ID>', inputFileData).then(function(job) {
console.log('Wait for job execution completion ...');
job.waitForJobExecutionCompletion().then(function(jobExecutionResult) {
const fileData = jobExecutionResult.fileData;
console.log('Output: ' + fileData.name + ' (' + fileData.getDataByteSize() + ' bytes)');
fs.writeFileSync('/Users/someone/output.pdf', fileData.blob, 'binary');
}, function(err) {
console.log(err);
});
}, function(err) {
console.log(err);
});
async/await
"use strict";
const fs = require('fs');
const easyPdfCloud = require('easypdfcloud-node');
const clientConfig = new easyPdfCloud.ClientConfig('<client ID>', '<client secret>');
(async () => {
const client = new easyPdfCloud.Client(clientConfig);
const inputFileBuffer = fs.readFileSync('/Users/someone/input.docx');
const inputFileData = new easyPdfCloud.FileData('input.docx', Uint8Array.from(inputFileBuffer));
console.log('Start new job ...');
const job = await client.startNewJob('<workflow ID>', inputFileData);
console.log('Wait for job execution completion ...');
const jobExecutionResult = await job.waitForJobExecutionCompletion();
const fileData = jobExecutionResult.fileData;
console.log('Output: ' + fileData.name + ' (' + fileData.getDataByteSize() + ' bytes)');
fs.writeFileSync('/Users/someone/output.pdf', fileData.blob, 'binary');
})();
Using dynamically created workflow
Alternatively, you can create a workflow on the spot and pass it to the API. Below example creates a workflow that adds a custom watermark text to a PDF.
Promise
"use strict";
const fs = require('fs');
const easyPdfCloud = require('easypdfcloud-node');
const clientConfig = new easyPdfCloud.ClientConfig('<client ID>', '<client secret>');
const client = new easyPdfCloud.Client(clientConfig);
const inputFileBuffer = fs.readFileSync('/Users/someone/input.pdf');
const inputFileData = new easyPdfCloud.FileData('input.pdf', Uint8Array.from(inputFileBuffer));
const workflowSetting = new easyPdfCloud.WorkflowSetting();
const addWatermarkToPdfTask = workflowSetting.AddNewAddWatermarkToPdfTask();
addWatermarkToPdfTask.Angle = 45;
addWatermarkToPdfTask.OutlineOnly = true;
addWatermarkToPdfTask.Text = 'Hello';
console.log('Start new job ...');
client.startNewJob(workflowSetting, inputFileData).then(function(job) {
console.log('Wait for job execution completion ...');
job.waitForJobExecutionCompletion().then(function(jobExecutionResult) {
const fileData = jobExecutionResult.fileData;
console.log('Output: ' + fileData.name + ' (' + fileData.getDataByteSize() + ' bytes)');
fs.writeFileSync('/Users/someone/output.pdf', fileData.blob, 'binary');
}, function(err) {
console.log(err);
});
}, function(err) {
console.log(err);
});
async/await
"use strict";
const fs = require('fs');
const easyPdfCloud = require('easypdfcloud-node');
const clientConfig = new easyPdfCloud.ClientConfig('<client ID>', '<client secret>');
(async () => {
const client = new easyPdfCloud.Client(clientConfig);
const inputFileBuffer = fs.readFileSync('/Users/someone/input.pdf');
const inputFileData = new easyPdfCloud.FileData('input.pdf', Uint8Array.from(inputFileBuffer));
const workflowSetting = new easyPdfCloud.WorkflowSetting();
const addWatermarkToPdfTask = workflowSetting.AddNewAddWatermarkToPdfTask();
addWatermarkToPdfTask.Angle = 45;
addWatermarkToPdfTask.OutlineOnly = true;
addWatermarkToPdfTask.Text = 'Hello';
console.log('Start new job ...');
const job = await client.startNewJob(workflowSetting, inputFileData);
console.log('Wait for job execution completion ...');
const jobExecutionResult = await job.waitForJobExecutionCompletion();
const fileData = jobExecutionResult.fileData;
console.log('Output: ' + fileData.name + ' (' + fileData.getDataByteSize() + ' bytes)');
fs.writeFileSync('/Users/someone/output.pdf', fileData.blob, 'binary');
})();