ByteScout Cloud API Server is API server that is ready to use and can be installed and deployed in less than 30 minutes on your own Windows server or server in a cloud. It can save data and files on your local server-based file storage or in Amazon AWS S3 storage. Data is processed solely on the API server and is powered by ByteScout engine, no cloud services or Internet connection is required for data processing..
On-demand (REST Web API) version:
Web API (on-demand version)
On-premise offline SDK for Windows:
60 Day Free Trial (on-premise)
// Please NOTE: In this sample we're assuming Cloud Api Server is hosted at "https://localhost".
// If it's not then please replace this with with your hosting url.
var https = require("https");
var path = require("path");
var fs = require("fs");
// The authentication key (API Key).
// Get your own by registering at https://app.pdf.co/documentation/api
const API_KEY = "***********************************";
// Result image file name
const DestinationFile = "./barcode.png";
// Barcode type. See valid barcode types in the documentation https://apidocs.pdf.co/#barcode-generator
const BarcodeType = "QRCode";
// Barcode value
const BarcodeValue = "QR123456\nhttps://pdf.co\nhttps://bytescout.com";
/*
Valid error correction levels:
----------------------------------
Low - [default] Lowest error correction level. (Approx. 7% of codewords can be restored).
Medium - Medium error correction level. (Approx. 15% of codewords can be restored).
Quarter - Quarter error correction level (Approx. 25% of codewords can be restored).
High - Highest error correction level (Approx. 30% of codewords can be restored).
*/
// Set "Custom Profiles" parameter
var Profiles = '{ "profiles": [{ "profile1": { "Options.QRErrorCorrectionLevel": "Quarter" } }] }';
// Prepare request to `Barcode Generator` API endpoint
var queryPath = `/v1/barcode/generate`;
// JSON payload for api request
var jsonPayload = JSON.stringify({
name: path.basename(DestinationFile),
type: BarcodeType,
value: BarcodeValue,
profiles: Profiles,
async: true
});
var reqOptions = {
host: "api.pdf.co",
method: "POST",
path: queryPath,
headers: {
"x-api-key": API_KEY,
"Content-Type": "application/json",
"Content-Length": Buffer.byteLength(jsonPayload, 'utf8')
}
};
// Send request
var postRequest = https.request(reqOptions, (response) => {
response.on("data", (d) => {
// Parse JSON response
var data = JSON.parse(d);
if (data.error == false) {
console.log(`Job #${data.jobId} has been created!`);
checkIfJobIsCompleted(data.jobId, data.url);
}
else {
// Service reported error
console.log(data.message);
}
});
}).on("error", (e) => {
// Request error
console.error(e);
});
// Write request data
postRequest.write(jsonPayload);
postRequest.end();
function checkIfJobIsCompleted(jobId, resultFileUrl) {
let queryPath = `/v1/job/check`;
// JSON payload for api request
let jsonPayload = JSON.stringify({
jobid: jobId
});
let reqOptions = {
host: "api.pdf.co",
path: queryPath,
method: "POST",
headers: {
"x-api-key": API_KEY,
"Content-Type": "application/json",
"Content-Length": Buffer.byteLength(jsonPayload, 'utf8')
}
};
// Send request
var postRequest = https.request(reqOptions, (response) => {
response.on("data", (d) => {
response.setEncoding("utf8");
// Parse JSON response
let data = JSON.parse(d);
console.log(`Checking Job #${jobId}, Status: ${data.status}, Time: ${new Date().toLocaleString()}`);
if (data.status == "working") {
// Check again after 3 seconds
setTimeout(function () { checkIfJobIsCompleted(jobId, resultFileUrl); }, 3000);
}
else if (data.status == "success") {
// Download image file
var file = fs.createWriteStream(DestinationFile);
https.get(resultFileUrl, (response2) => {
response2.pipe(file)
.on("close", () => {
console.log(`Generated image file saved as "${DestinationFile}" file.`);
});
});
}
else {
console.log(`Operation ended with status: "${data.status}".`);
}
})
});
// Write request data
postRequest.write(jsonPayload);
postRequest.end();
}
{
"name": "test",
"version": "1.0.0",
"description": "PDF.co",
"main": "app.js",
"scripts": {
},
"keywords": [
"pdf.co",
"web",
"api",
"bytescout",
"api"
],
"author": "ByteScout & PDF.co",
"license": "ISC",
"dependencies": {
"request": "^2.88.2"
}
}
See also:
Get Your API Key
See also: