PDF to PDF Node.js Examples
These examples demonstrate common PDF to PDF API workflows in Node.js.
Basic examples
Multiple PDFs to PDF file
var pdfcrowd = require("pdfcrowd"); // Create an API client instance. var client = new pdfcrowd.PdfToPdfClient("demo", "demo"); try { // Configure the conversion. client.addPdfFile("/path/to/cover.pdf"); client.addPdfFile("/path/to/proposal.pdf"); client.addPdfFile("/path/to/price.pdf"); client.addPdfFile("/path/to/contact.pdf"); } catch(why) { // Report the error. console.error("PDFCrowd Error: " + why); process.exit(1); } // Run the conversion and save the result to a file. client.convertToFile( "offer.pdf", function(err, fileName) { if (err) return console.error("PDFCrowd Error: " + err); console.log("Success: the file was created " + fileName); });
Multiple PDFs to PDF file via callback
var pdfcrowd = require("pdfcrowd"); // Create an API client instance. var client = new pdfcrowd.PdfToPdfClient("demo", "demo"); try { // Configure the conversion. client.addPdfFile("/path/to/cover.pdf"); client.addPdfFile("/path/to/proposal.pdf"); client.addPdfFile("/path/to/price.pdf"); client.addPdfFile("/path/to/contact.pdf"); } catch(why) { // Report the error. console.error("PDFCrowd Error: " + why); process.exit(1); } // use predefined callback for saving to a file var callbacks = pdfcrowd.saveToFile("offer.pdf"); // set custom error callback callbacks.error = function(errMessage, statusCode) { // use predefined helper class for errors const error = new pdfcrowd.Pdfcrowd.Error(errMessage, statusCode); console.error("PDFCrowd Error: " + error); }; // Run the conversion and save the result to a file. client.convert(callbacks);
Multiple in-memory PDFs to PDF file
var pdfcrowd = require("pdfcrowd"); var fs = require("fs"); // Create an API client instance. var client = new pdfcrowd.PdfToPdfClient("demo", "demo"); try { // Configure the conversion. client.addPdfRawData(fs.readFileSync("/path/to/cover.pdf")); client.addPdfRawData(fs.readFileSync("/path/to/proposal.pdf")); client.addPdfRawData(fs.readFileSync("/path/to/price.pdf")); client.addPdfRawData(fs.readFileSync("/path/to/contact.pdf")); } catch(why) { // Report the error. console.error("PDFCrowd Error: " + why); process.exit(1); } // Run the conversion and save the result to a file. client.convertToFile( "offer.pdf", function(err, fileName) { if (err) return console.error("PDFCrowd Error: " + err); console.log("Success: the file was created " + fileName); });
Join 2 in-memory PDFs together with 2 local PDF files to PDF file
var pdfcrowd = require("pdfcrowd"); var fs = require("fs"); // Create an API client instance. var client = new pdfcrowd.PdfToPdfClient("demo", "demo"); try { // Configure the conversion. client.addPdfRawData(fs.readFileSync("/path/to/cover.pdf")); client.addPdfFile("/path/to/proposal.pdf"); client.addPdfRawData(fs.readFileSync("/path/to/price.pdf")); client.addPdfFile("/path/to/contact.pdf"); } catch(why) { // Report the error. console.error("PDFCrowd Error: " + why); process.exit(1); } // Run the conversion and save the result to a file. client.convertToFile( "offer.pdf", function(err, fileName) { if (err) return console.error("PDFCrowd Error: " + err); console.log("Success: the file was created " + fileName); });
Watermark a PDF file
var pdfcrowd = require("pdfcrowd"); // Create an API client instance. var client = new pdfcrowd.PdfToPdfClient("demo", "demo"); try { // Configure the conversion. client.addPdfFile("/path/to/proposal.pdf"); client.setPageWatermark("/path/to/watermark.pdf"); } catch(why) { // Report the error. console.error("PDFCrowd Error: " + why); process.exit(1); } // Run the conversion and save the result to a file. client.convertToFile( "company_offer.pdf", function(err, fileName) { if (err) return console.error("PDFCrowd Error: " + err); console.log("Success: the file was created " + fileName); });
Linearize a PDF file
var pdfcrowd = require("pdfcrowd"); // Create an API client instance. var client = new pdfcrowd.PdfToPdfClient("demo", "demo"); try { // Configure the conversion. client.addPdfFile("/path/to/not_linearized.pdf"); client.setLinearize(true); } catch(why) { // Report the error. console.error("PDFCrowd Error: " + why); process.exit(1); } // Run the conversion and save the result to a file. client.convertToFile( "linearized.pdf", function(err, fileName) { if (err) return console.error("PDFCrowd Error: " + err); console.log("Success: the file was created " + fileName); });
Get info about the current conversion
var pdfcrowd = require("pdfcrowd"); var fs = require("fs"); // Create an API client instance. var client = new pdfcrowd.PdfToPdfClient("demo", "demo"); try { // Configure the conversion. client.setDebugLog(true); client.addPdfRawData(fs.readFileSync("/path/to/cover.pdf")); client.addPdfRawData(fs.readFileSync("/path/to/proposal.pdf")); } catch(why) { // Report the error. console.error("PDFCrowd Error: " + why); process.exit(1); } // Run the conversion and save the result to a file. client.convertToFile( "offer.pdf", function(err, fileName) { if (err) return console.error("PDFCrowd Error: " + err); console.log("Success: the file was created " + fileName); // print URL pointing to the debug log for this request. console.log("Debug log url: " + client.getDebugLogUrl()); // print number of conversion credits remaining in your account. console.log("Remaining credit count: " + client.getRemainingCreditCount()); // print number of credits consumed for this conversion. console.log("Consumed credit count: " + client.getConsumedCreditCount()); // print unique identifier assigned to this conversion job. console.log("Job id: " + client.getJobId()); // print total number of pages in the output document. console.log("Page count: " + client.getPageCount()); // print size of the output data in bytes. console.log("Output size: " + client.getOutputSize()); });
PDF manipulation examples
Extract page 3 and all pages from 7 to the end from the PDF file
var pdfcrowd = require("pdfcrowd"); // Create an API client instance. var client = new pdfcrowd.PdfToPdfClient("demo", "demo"); try { // Configure the conversion. client.addPdfFile("/your-path-to/pdfs/13_pages.pdf"); client.setAction("extract"); client.setPageRange("3,7-"); } catch(why) { // Report the error. console.error("PDFCrowd Error: " + why); process.exit(1); } // Run the conversion and save the result to a file. client.convertToFile( "output.pdf", function(err, fileName) { if (err) return console.error("PDFCrowd Error: " + err); console.log("Success: the file was created " + fileName); });
Delete the first 3 pages and the 10th page from the PDF file
var pdfcrowd = require("pdfcrowd"); // Create an API client instance. var client = new pdfcrowd.PdfToPdfClient("demo", "demo"); try { // Configure the conversion. client.addPdfFile("/your-path-to/pdfs/13_pages.pdf"); client.setAction("delete"); client.setPageRange("1-3,10"); } catch(why) { // Report the error. console.error("PDFCrowd Error: " + why); process.exit(1); } // Run the conversion and save the result to a file. client.convertToFile( "output.pdf", function(err, fileName) { if (err) return console.error("PDFCrowd Error: " + err); console.log("Success: the file was created " + fileName); });
Split the PDF file into two separate files at the 10th page
var pdfcrowd = require("pdfcrowd"); var client = new pdfcrowd.PdfToPdfClient("demo", "demo"); try { client.addPdfFile("/your-path-to/pdfs/13_pages.pdf"); client.setAction("extract"); client.setPageRange("1-10"); client.convertToFile("pages1-10.pdf"); client.setPageRange("11-"); } catch(why) { console.error("PDFCrowd Error: " + why); process.exit(1); } client.convertToFile( "pages11-end.pdf", function(err, fileName) { if (err) return console.error("PDFCrowd Error: " + err); console.log("Success: the file was created " + fileName); });
Express.js examples
Multiple PDFs to PDF in Express.js
"use strict"; const express = require("express"); const app = express(); const pdfcrowd = require("pdfcrowd"); // The recommended method is POST. app.post("/", (req, res) => { // Create an API client instance. var client = new pdfcrowd.PdfToPdfClient("demo", "demo"); // configure the callback to send a file in the HTTP response var callbacks = pdfcrowd.sendGenericHttpResponse( res, "application/pdf", "offer.pdf", "attachment"); // configure the callback to send an error in the HTTP response callbacks.error = function(errMessage, statusCode) { res.set('Content-Type', 'text/plain'); res.status(statusCode || 400); res.send(errMessage); } // Configure the conversion. try { client.addPdfFile("/path/to/cover.pdf"); client.addPdfFile("/path/to/proposal.pdf"); client.addPdfFile("/path/to/price.pdf"); client.addPdfFile("/path/to/contact.pdf"); } catch(why) { if(why instanceof pdfcrowd.Pdfcrowd.Error) { callbacks.error(why.toString(), why.getStatusCode()); } else { callbacks.error(why); } return; } // Run the conversion. client.convert(callbacks); }); module.exports = app;
Multiple in-memory PDFs to PDF in Express.js
"use strict"; const express = require("express"); const app = express(); const pdfcrowd = require("pdfcrowd"); var fs = require("fs"); // The recommended method is POST. app.post("/", (req, res) => { // Create an API client instance. var client = new pdfcrowd.PdfToPdfClient("demo", "demo"); // configure the callback to send a file in the HTTP response var callbacks = pdfcrowd.sendGenericHttpResponse( res, "application/pdf", "offer.pdf", "attachment"); // configure the callback to send an error in the HTTP response callbacks.error = function(errMessage, statusCode) { res.set('Content-Type', 'text/plain'); res.status(statusCode || 400); res.send(errMessage); } // Configure the conversion. try { client.addPdfRawData(fs.readFileSync("/path/to/cover.pdf")); client.addPdfRawData(fs.readFileSync("/path/to/proposal.pdf")); client.addPdfRawData(fs.readFileSync("/path/to/price.pdf")); client.addPdfRawData(fs.readFileSync("/path/to/contact.pdf")); } catch(why) { if(why instanceof pdfcrowd.Pdfcrowd.Error) { callbacks.error(why.toString(), why.getStatusCode()); } else { callbacks.error(why); } return; } // Run the conversion. client.convert(callbacks); }); module.exports = app;