HTML JPG PDF XML DOCX
  Product Family
PDF

Replace Links in PDF in Node.js SDK

Replace a Links in a PDF Document using Cloud Node.js SDK

Get Started

How to Replace Links in PDF via Node.js SDK

To replace links in PDF, we’ll use Aspose.PDF Cloud Node.js SDK. This Cloud SDK assists Node.js programmers in developing cloud-based PDF creator, annotator, editor, and converter apps using Node.js programming language via Aspose.PDF REST API. Simply create an account at Aspose for Cloud and get your application information. Once you have the App SID & key, you are ready to give the Aspose.PDF Cloud Node.js SDK.

Package Manager Console Command


     
    npm install asposepdfcloud --save
     
     

Steps to Replace Links using Node.js

Aspose.PDF Cloud developers can easily load & replace Links in PDF in just a few lines of code.

  1. Create an object to connect to the Pdf.Cloud API
  2. Upload your document file
  3. Create a new Link Annotation with the required properties
  4. Append new Link Annotation to the document using postPageLinkAnnotations() function
  5. Perform some action after successful addition
  6. Download the result if needed it
 

Replace Links in PDF using Node.js


 
    import credentials from "./credentials.json"  with { type: "json" };    // json-file in this format: { "id": "*****", "key": "*******" }
    import fs from 'node:fs/promises';
    import path from 'node:path';
    import { PdfApi } from "asposepdfcloud";;

    const configParams = {
        LOCAL_FOLDER: "C:\\Samples\\",
        PDF_DOCUMENT_NAME: "sample.pdf",
        LOCAL_RESULT_DOCUMENT_NAME: "output_sample.pdf",
        LINK_REMOVE_ID: "GI5UO32UN5KVESKBMN2GS33OHMZTEMJMGUYDQLBTGYYCYNJSGE",
        NEW_LINK_ACTION: "https://reference.aspose.cloud/pdf/#/",
        PAGE_NUMBER: 2,     // Your document page number...
    };

    const pdfApi = new PdfApi(credentials.id, credentials.key);

    const pdfLinks = {
    async uploadDocument() {
            const pdfFilePath = path.join(configParams.LOCAL_FOLDER, configParams.PDF_DOCUMENT_NAME);
            const pdfFileData = await fs.readFile(pdfFilePath);
            await pdfApi.uploadFile(configParams.PDF_DOCUMENT_NAME, pdfFileData);
        },
        
        async downloadResult() {
            const changedPdfData = await pdfApi.downloadFile(configParams.PDF_DOCUMENT_NAME);
            const filePath = path.join(configParams.LOCAL_FOLDER, configParams.LOCAL_RESULT_DOCUMENT_NAME);
            await fs.writeFile(filePath, changedPdfData.body);
            console.log("Downloaded: " + filePath);
        },

        async replaceLink () {
            const link = await pdfLinks.getLinkById(configParams.LINK_REMOVE_ID);

            link.action = configParams.NEW_LINK_ACTION;
            
            var updResponse = await pdfApi.putLinkAnnotation(configParams.PDF_DOCUMENT_NAME, configParams.LINK_REMOVE_ID, link);

            if (updResponse.body.code == 200 && updResponse.body.link) {
                pdfLinks.showLinks( [ updResponse.body.link ], "drop");
                return updResponse.body.link;
            }
            else
                console.Error("Unexpected error : can't append link!!!");
        },

        async getLinkById () {
            const resultLinks = await pdfApi.getPageLinkAnnotation(configParams.PDF_DOCUMENT_NAME, configParams.PAGE_NUMBER, configParams.LINK_REMOVE_ID);

            if (resultLinks.body.code == 200 && resultLinks.body.link) {
                this.showLinks( [ resultLinks.body.link ], "found");
                return resultLinks.body.link;
            }
            else
                console.Error("Unexpected error : can't get link !!!");
        },

        showLinks (links, prefix) {
            if (Array.isArray(links) && links.length > 0)
            {
                links.forEach(function(link) {
                    console.log(prefix +" => '" + link.id + "', '" + link.action);
                });
            }
            else
                console.error("showLinks() error: array of links is empty!")
        },

    }

    async function main() {
        try {
            await pdfLinks.uploadDocument();
            await pdfLinks.replaceLink();
            await pdfLinks.downloadResult();
        } catch (error) {
            console.error("Error:", error.message);
        }
    }
 

Work with Links in PDF

By regularly reviewing and updating the hyperlinks in your PDF documents, you can maintain their relevance, accuracy, and security, thereby providing a better experience for your readers. Replacethe Links in PDF documents with Aspose.PDF Cloud Node.js SDK.

With our Node.js library you can:

  • Add PDF document’s header & footer in text or image format.
  • Add tables & stamps (text or image) to PDF documents.
  • Append multiple PDF documents to an existing file.
  • Work with PDF attachments, annotations, & form fields.
  • Apply encryption or decryption to PDF documents & set a password.
  • Delete all stamps & tables from a page or entire PDF document.
  • Delete a specific stamp or table from the PDF document by its ID.
  • Replace single or multiple instances of text on a PDF page or from the entire document.
  • Extensive support for converting PDF documents to various other file formats.
  • Extract various elements of PDF files & make PDF documents optimized.
  • You can try out our free App to test the functionality online.