Test in a live environment
Test in production without watermarks.
Works wherever you need it to.
PDF documents have become a fundamental element in digital documentation, valued for their reliability and security. They maintain a consistent format across various platforms, making them a preferred choice for many professional applications. Nonetheless, the necessity to alter or update existing PDF documents is a common occurrence in numerous professional contexts, reflecting the dynamic nature of digital information management. Node.js, a powerful JavaScript runtime, can be paired with the IronPDF library to edit and manipulate PDF documents efficiently. This tutorial aims to guide beginners through the basics of using IronPDF in Node.js to edit and create PDF files.
IronPDF is a PDF library that integrates seamlessly with Node.js, offering an amazing set of features for PDF manipulation. It enables developers to create a new simple PDF document, modify existing PDF documents, add a custom font, and even merge multiple PDF files. Before diving into the technicalities, it's important to grasp the fundamentals of IronPDF and how it interacts within the Node.js environment.
Before you can begin working with PDFs in your Node.js application, you need to set up your environment. Here are the steps you need to follow:
Create a new project directory: Open your terminal or command prompt and create a new directory for your project using the following command:
mkdir pdf-editing-project
Navigate to the project directory: Change to the project directory using the following command:
cd pdf-editing-project
Initialize a new Node.js project: Run the following command to initialize a new Node.js project in the project directory:
npm init -y
This will create a package.json
file with default values.
Install the PDF editing library: Install the PDF editing library of your choice using npm. For example, if you want to use the "pdf-lib" library, run the following command:
npm install pdf-lib
This will install the "pdf-lib" library and add it as a dependency in your package.json
file.
app.js
) in your project directory and open it in your favorite code editor.Remember to consult the official documentation of the PDF editing library you are using for detailed instructions and examples.
To start manipulating PDF documents, you need a functioning Node.js environment and the IronPDF library installed. This section will guide you through the installation process, ensuring you have the necessary tools to begin your PDF manipulation journey.
To verify that Node.js is installed correctly, open a terminal or command prompt and run the following command:
node --version
You should see the version number of Node.js printed to the console.
To install the IronPDF library, you have two options:
Run the following command:
npm install ironpdf
Run the following command:
yarn add ironpdf
To verify that IronPDF is installed correctly, you can create a simple Node.js script that uses IronPDF to perform a basic operation, such as generating a PDF file. Here's an example:
const IronPDF = require('ironpdf');
async function generatePdf() {
const html = '<html><body><h1>Hello IronPDF!</h1></body></html>';
const pdf = await IronPDF.Renderer.RenderHtmlAsPdf(html);
await pdf.SaveAs('output.pdf');
}
generatePdf();
Save the above code in a file (e.g., generate-pdf.js
), and run it using Node.js with the following command:
node generate-pdf.js
If everything is set up correctly, you should see a new file named output.pdf
in your project directory.
Congratulations! You now have Node.js and IronPDF installed and are ready to start manipulating PDF documents.
npm install ironpdf
in your command line.With your environment set up, it's time to create your first JavaScript file. This file will serve as the foundation for your PDF manipulation tasks. You can use any IDE for creating the JavaScript file.
Here are the steps to create your JavaScript file:
.js
extension (e.g., pdfManipulation.js
).For example, let's define a function that adds a watermark to a PDF:
function addWatermarkToPdf(pdfPath, watermarkText, outputPath) {
// Code to add the watermark to the PDF
// ...
}
// Example usage
const pdfPath = 'path/to/input.pdf';
const watermarkText = 'Confidential';
const outputPath = 'path/to/output.pdf';
addWatermarkToPdf(pdfPath, watermarkText, outputPath);
Remember to replace pdfPath
, watermarkText
, and outputPath
with the actual file paths and watermark text you want to use.
Once you have written the code, you can save the file and start testing your PDF manipulation functions by running them in Node.js or using any other method according to your requirements.
Happy coding!
Editing the content within a PDF is one of the most common tasks. IronPDF's editing features are robust, allowing for any type of modification within the PDF document.
IronPDF ensures that your PDF documents are not only secure but also well-organized with proper metadata. Setting passwords is a straightforward process, and you can also implement additional security measures, including restricting printing, copying, and editing of the PDF file. Metadata plays a crucial role in document management, making it easier to categorize and retrieve PDF documents based on properties like author, title, and subject.
import { PdfDocument } from "@ironsoftware/ironpdf";
import { IronPdfGlobalConfig } from "@ironsoftware/ironpdf";
(async function securePDFs() {
try {
// Input the license key
const IronPdfConfig = {
licenseKey: "Your-License-Key",
};
// Load the existing PDF document
const pdf = await PdfDocument.fromFile("output.pdf");
// Make PDF read-only
await pdf.makePdfDocumentReadOnly("readonlypassword");
// Configure permissions
const permissions = {
AllowAnnotations: false,
AllowExtractContent: false,
AllowFillForms: false,
AllowPrint: true,
};
await pdf.setPermission(permissions);
// Change or set the document encryption password
await pdf.saveAs("securedPDF.pdf", { userPassword: "my-password" });
} catch (error) {
// Handle errors here
console.error("An error occurred:", error);
}
})();
IronPDF supports digital signatures, which are essential for verification and trust in business transactions. This feature adds a layer of authentication, confirming the origin and integrity of the entire document.
import { PdfDocument } from "@ironsoftware/ironpdf";
import { IronPdfGlobalConfig } from "@ironsoftware/ironpdf";
(async function signPDFs() {
try {
// Input the license key
const IronPdfConfig = {
licenseKey: "Your-License-Key",
};
// Step 1. Import a PDF
const pdf = await PdfDocument.open("output.pdf");
// Step 2. Sign the PDF with digital certificate
await pdf.signDigitalSignature({
certificatePath: "DigitalIronSoftware.pfx",
certificatePassword: "abcdedf",
signingReason: "How to sign a PDF",
signingLocation: "Chicago, USA",
signatureImage: {
SignatureImagePath: "logo.png",
},
});
// Step 3. Save the Signed PDF
await pdf.saveAs("signed.pdf");
} catch (error) {
// Handle errors here
console.error("An error occurred:", error);
}
})();
With IronPDF, you can reduce the file size of PDF documents, making them easier to share and faster to upload or download. Compression is key to managing large volumes of PDF files, especially when storage space and bandwidth are at a premium.
// Load the existing PDF document
const pdf = await PdfDocument.fromFile("output.pdf");
// Compress images with quality parameter varies (1-100)
await pdf.compressSize(70);
// Save the compressed PDF
await pdf.saveAs("CompressedPDF.pdf");
IronPDF facilitates the merging of multiple PDFs into a single document. This is particularly useful when consolidating reports or combining several documents into one file for distribution.
import { PdfDocument } from "@ironsoftware/ironpdf";
import { IronPdfGlobalConfig } from "@ironsoftware/ironpdf";
(async function mergePDFs() {
try {
// Input the license key
const IronPdfConfig = {
licenseKey: "Your-License-Key",
};
IronPdfGlobalConfig.setConfig(IronPdfConfig);
const firstPDF = await PdfDocument.fromFile("firstPDF.pdf");
const secondPDF = await PdfDocument.fromFile("secondPDF.pdf");
// Merge the two PDF documents
const merged = await PdfDocument.mergePdf([firstPDF, secondPDF]);
// Save the merged PDF
await merged.saveAs("Merged.pdf");
} catch (error) {
// Handle errors here
console.error("An error occurred:", error);
}
})();
IronPDF allows for the selective removal of pages from an existing PDF file, enabling you to prepare the document to specific needs or preferences.
import { PdfDocument } from "@ironsoftware/ironpdf";
import { IronPdfGlobalConfig } from "@ironsoftware/ironpdf";
(async function removePages() {
try {
// Input the license key
const IronPdfConfig = {
licenseKey: "Your-License-Key",
};
IronPdfGlobalConfig.setConfig(IronPdfConfig);
// Create a PDF document from the HTML
const pdfDoc = await PdfDocument.fromFile("output.pdf");
// Remove pages 2 and 3 (page numbers are zero-based)
pdfDoc.removePage([1, 2]);
// Save the modified PDF document
await pdfDoc.saveAs("pageRemoved.pdf");
} catch (error) {
// Handle errors here
console.error("An error occurred:", error);
}
})();
IronPDF provides the ability to search for specific text within a PDF document and replace it. This is especially handy when updating information or correcting errors across a PDF file.
import { PdfDocument } from "@ironsoftware/ironpdf";
import { IronPdfGlobalConfig } from "@ironsoftware/ironpdf";
(async function replaceTextInPDF() {
try {
// Input the license key
const IronPdfConfig = {
licenseKey: "Your-License-Key",
};
IronPdfGlobalConfig.setConfig(IronPdfConfig);
// Load the PDF document
const pdf = await PdfDocument.fromFile("input.pdf");
// Parameters
const pageIndex = 0; // Page index (zero-based)
const oldText = "Old Text"; // Text to find
const newText = "New Text"; // Text to replace
// Replace text on the specified page
await pdf.replaceText(oldText, newText, pageIndex);
// Save the modified PDF document
await pdf.saveAs("output.pdf");
} catch (error) {
// Handle errors here
console.error("An error occurred:", error);
}
})();
Stamping new content onto a PDF page, such as images or text, is made easy with IronPDF. This can be used for branding purposes, adding headers, footers, a PNG image, or even watermarks.
import { PdfDocument } from "@ironsoftware/ironpdf";
import { IronPdfGlobalConfig } from "@ironsoftware/ironpdf";
(async function stampPDFs() {
try {
// Input the license key
const IronPdfConfig = {
licenseKey: "Your-License-Key",
};
IronPdfGlobalConfig.setConfig(IronPdfConfig);
// Open existing PDF
const pdfdoc = await PdfDocument.fromFile("output.pdf");
// Configure the HTML stamp
const stampOptions = {
horizontalAlignment: "Center",
verticalAlignment: "Bottom",
behindExistingContent: false,
opacity: 30,
};
const html = "<img src='logo.png'/>";
// Apply the stamp to the PDF
await pdfdoc.stampHtml(html, { htmlStampOptions: stampOptions });
// Save the stamped PDF
await pdfdoc.saveAs("stamped_image.pdf");
} catch (error) {
// Handle errors here
console.error("An error occurred:", error);
}
})();
IronPDF enables the creation and manipulation of PDF forms, allowing for interactive elements such as text fields, checkboxes, and radio buttons to be added to your document. Users can fill out forms directly within the PDF, streamlining data collection and distribution processes.
import { PdfDocument } from "@ironsoftware/ironpdf";
import { IronPdfGlobalConfig } from "@ironsoftware/ironpdf";
(async function createPDFsWithForms() {
try {
// Input the license key
const IronPdfConfig = {
licenseKey: "Your-License-Key",
};
IronPdfGlobalConfig.setConfig(IronPdfConfig);
// Simplified HTML content with fewer form fields
const formHtml = `
<html>
<body>
<h2>Simple Registration Form</h2>
<form>
Name: <br>
Email: <br>
<p>Age:</p>
<p>Favorite Color:</p>
<select name='color'>
<option value='Red'>Red</option>
<option value='Blue'>Blue</option>
<option value='Green'>Green</option>
<option value='Yellow'>Yellow</option>
</select>
</form>
</body>
</html>
`;
// Use the same render options
const options = {
createPdfFormsFromHtml: true,
};
// Render HTML content to a PDF with editable forms
const pdfdoc = await PdfDocument.fromHtml(formHtml, {
renderOptions: options,
});
// Save the new PDF
await pdfdoc.saveAs("simpleRegistrationForm.pdf");
} catch (error) {
// Handle errors here
console.error("An error occurred:", error);
}
})();
IronPDF emerges as a comprehensive solution for PDF manipulation in Node.js. With its features from merging PDFs to securing them, IronPDF helps developers with the capabilities to manage PDF documents effectively. Whether the task at hand involves editing existing PDFs or creating new ones from scratch, IronPDF provides the tools necessary to accomplish these with efficiency and precision.
IronPDF offers a free trial and various licensing options, providing comprehensive access to all of IronPDF's functionalities.
9 .NET API products for your office documents