pdf-lib | modify PDF documents in any JavaScript environment | Document Editor library

 by   Hopding TypeScript Version: 1.17.1 License: MIT

kandi X-RAY | pdf-lib Summary

kandi X-RAY | pdf-lib Summary

pdf-lib is a TypeScript library typically used in Editor, Document Editor applications. pdf-lib has no bugs, it has no vulnerabilities, it has a Permissive License and it has medium support. You can download it from GitHub.

Create and modify PDF documents in any JavaScript environment

            kandi-support Support

              pdf-lib has a medium active ecosystem.
              It has 5219 star(s) with 486 fork(s). There are 66 watchers for this library.
              It had no major release in the last 12 months.
              There are 158 open issues and 825 have been closed. On average issues are closed in 147 days. There are 28 open pull requests and 0 closed requests.
              It has a neutral sentiment in the developer community.
              The latest version of pdf-lib is 1.17.1

            kandi-Quality Quality

              pdf-lib has 0 bugs and 0 code smells.

            kandi-Security Security

              pdf-lib has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
              pdf-lib code analysis shows 0 unresolved vulnerabilities.
              There are 0 security hotspots that need review.

            kandi-License License

              pdf-lib is licensed under the MIT License. This license is Permissive.
              Permissive licenses have the least restrictions, and you can use them in most projects.

            kandi-Reuse Reuse

              pdf-lib releases are available to install and integrate.
              Installation instructions, examples and code snippets are available.
              It has 3991 lines of code, 3 functions and 296 files.
              It has medium code complexity. Code complexity directly impacts maintainability of the code.

            Top functions reviewed by kandi - BETA

            kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
            Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of pdf-lib
            Get all kandi verified functions for this library.

            pdf-lib Key Features

            No Key Features are available at this moment for pdf-lib.

            pdf-lib Examples and Code Snippets

            No Code Snippets are available at this moment for pdf-lib.

            Community Discussions


            how to digitally sign a PDF document with a certificat using Javascript?
            Asked 2022-Mar-27 at 19:41

            i was looking for a solution to digitally sign a pdf with a self-signed certificat and came across a video in youtube explaining the process using pdf-lib and node-signpdf libraries. However, after following the instructions it didnt work as intended and encountered a problem:

            • i executed the command ( npm i ) and (npm start ) as shown in the github repo of the project.

            repo : https://github.com/RichardBray/pdf_sign

            Demo ( 8 mins video ) : https://www.youtube.com/watch?v=OFZK5lc70OI&list=PLXUfmx2SIgyICZP-rA84Sle_ghq30W89N&index=4&t=1s



            Answered 2022-Mar-27 at 19:41

            it appears that the problem is OS related. In fact , the code works fine under linux OS but have some issues with Windows OS related to import command. For windows OS replacing "import" commands with "require" commands solves the problem.


            Source https://stackoverflow.com/questions/71617826


            Load PDF document with PDF-LIB on Node gives "No PDF header found"
            Asked 2022-Jan-19 at 23:17

            Im loading a PDF document I have to modify on the fly with PDF-lib.



            Answered 2021-Dec-14 at 18:20

            Per the documentation, PDFDocument.load() accepts a string which is the contents of the pdf file, not the name.

            Source https://stackoverflow.com/questions/70353134


            How to place image on right corner of pdf using node js?
            Asked 2021-Dec-21 at 09:39

            I have one pdf file and one image file which is the signature of the client. I need to place the client signature image on the top right corner of every page of pdf. This whole process is in node js so I have used the pdf-lib npm package to attach image on pdf. The current issue I'm unable to place the image on the top-right corner.

            Below is the logic which I used to set an image on the top-right corner of the pdf but this logic is not true for every case in some cases when the width of the image or pdf changes then it's not worked as expected. Sometimes images are getting too much small or sometimes too much large.Just because I set fix height and width. As I don't know how to calculate it dynamically



            Answered 2021-Dec-21 at 09:39

            I got the solution to get dynamic x and y values to set an image on the top-right corner of the pdf

            Source https://stackoverflow.com/questions/70402095


            What color format is pdf-lib using?
            Asked 2021-Nov-08 at 18:38

            What color format is pdf-lib using? Writing rgb(156, 132, 678) or cmyk(157, 145, 124, 135) throws an error where all number values must be between 0 and 1.

            How do I convert standard rgb, ie. 0-255 to whatever format this is?

            The docs give me the TypeScript definitions of the function but no explanations.



            Answered 2021-Nov-04 at 15:15

            Documentation gives an example like this color: rgb(0.95, 0.1, 0.1). Dividing by 255 is likely the solution.

            Source https://stackoverflow.com/questions/69841407


            setState is too laggy in React
            Asked 2021-Oct-13 at 03:20

            I use pdf-lib(JS library) in my React project. I am doing heavy work with the library with async/await and would like to update progress bar by updating state. Even though I call setState in setTimeout, the state is updated after the heavy work ends. So the progress bar shows only 0% and 100%. Could you kindly figure it out? I can't share my code, but if you want, I will show a little.



            Answered 2021-Oct-13 at 03:20

            Remember that "asynchronous" does not mean it runs "in parallel". It just means that code gets to run "out of order" in a controlled fashion.

            Your page thread is just a single thread, so if you have a long-running function, you can mark that function as async or run it with setTimeout as much as you like but while your function code runs, nothing else gets to run (although in the case of async: only until the code hits an await, which I'm assuming pdf-kit does not use).

            If you need to do heavy lifting, use a service worker, which is a special API for exactly this thing, running heavy workloads in a separate thread so that you don't block the main page thread.

            Source https://stackoverflow.com/questions/69548447


            Why I am getting the fetch is not defined error?
            Asked 2021-Oct-10 at 11:30

            I have tried to create a custom email receipt template with SendGrid using commercejs webhooks, by following this tutorial. I have uploaded this github repository to this test Netlify site. The main code is /functions/email.js I am pretty sure my .env variables are correct, still no receipt emails are received and probably send. When checking the Netlify function email log says:



            Answered 2021-Oct-03 at 23:57

            Twilio SendGrid developer evangelist here.

            You have installed node-fetch to the project, but the tutorial did not include requiring the library into the function to use it. So you need to require node-fetch.

            The tutorial also fails to require the SendGrid library and set the API key. You should set your SendGrid API key in the environment in Netlify, called something like SENDGRID_API_KEY. Then add the following to the top of your function:

            Source https://stackoverflow.com/questions/69428212


            Next.js API: Watermark PDF using query parameters in URL
            Asked 2021-Sep-25 at 09:01

            this is my first time testing out Next.js API, I am also quite new to the whole Next.js/React world so bear with me.

            The goal for this API route is to trigger an automatic download of a PDF with a custom watermark generated from API URL query parameters like this: /api/PDFWatermark?id=123&firstname=John&lastname=Doe

            In order to create the watermark I am using pdf-lib and I am using a modified version of this code to watermark my PDF. To generate a modified and downloadable version of the original PDF pdfDoc I have tried to create a blob using the pdfBytes after the watermarking. After the blob is created I thought I could add it to an anchor attached to the DOM.

            When commenting out the blob and anchor code, two errors occur:

            1. ReferenceError: Blob is not defined
            2. ReferenceError: document is not defined (possibility because there is no DOM to attach the anchor link)

            At this point I am only able to print the pdfBytes as json, I am not able to create and download the actual watermarked PDF file.

            Is there a way to auto download the pdfBytes as a PDF file when the API is called?


            Working code below after changing modifyPDF to return a buffer:



            Answered 2021-Sep-25 at 09:01

            Change your modifyPDF to return a buffer

            Source https://stackoverflow.com/questions/69318155


            Write text on the side of the PDF for every pages
            Asked 2021-Apr-01 at 13:44

            I use pdflib and it works perfectly for me. But I can't get it to write a message on all the pages of the PDF.

            How can I make it so that, if I upload a 7 pages PDF, the message appears on all 7 pages. And if I upload a 5 pages PDF, it appears on all 5 pages.

            And I tried using if but I didn't get it in the end.



            Answered 2021-Apr-01 at 13:44

            Not sure if it is the "diagonal message" that you are trying to write on all pages but if so, instead of only getting the first page with const firstPage = pages[0] you should iterate on all pages to use drawText() on each page.

            Source https://stackoverflow.com/questions/66895749


            pdf-lib: how to add custom font
            Asked 2021-Feb-09 at 01:04

            My environment is node v12.16.1 with typescript added.

            I am using pdf-lib v1.16.0 (https://www.npmjs.com/package/pdf-lib) in order to fill the form for given PDF file. Library source code can be found here https://github.com/Hopding/pdf-lib and more on docs here https://pdf-lib.js.org/.

            Regarding fonts pdf-lib has a set of called StandardFonts which is provided inside the lib.



            Answered 2021-Feb-07 at 18:18

            From the specs https://www.npmjs.com/package/pdf-lib#embed-font-and-measure-text

            pdf-lib relies on a sister module to support embedding custom fonts: @pdf-lib/fontkit. You must add the @pdf-lib/fontkit module to your project and register it using pdfDoc.registerFontkit(...) before embedding custom fonts.

            We have to npm i --save @pdf-lib/fontkit and we have to have source from where which we will read the font. In my case I have added .otf file in project and loaded font. Files are structured like on the image:

            Source https://stackoverflow.com/questions/66091490


            Use promise-returning code without async/await
            Asked 2021-Jan-27 at 05:07

            I'm trying to quickly write a simple tool in NodeJS using pdf-lib. pdf-lib appears to be designed to use promises and async/await, but I don't want the extra code complexity of async/await for such a simple tool.

            How can I use functions that return a promise without the extra bother of async/await?



            Answered 2021-Jan-27 at 05:07

            Since the library primarily uses Promises, you will have to learn how to use Promises regardless, if you want to be able to use the library.

            If you think async/await will be too difficult, you can construct .then chains instead. When you start with a Promise or have a Promise inside a .then, make another .then, whose callback will run when the Promise resolves. For example, this:

            Source https://stackoverflow.com/questions/65913086

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network


            No vulnerabilities reported

            Install pdf-lib

            pdf-lib relies upon a sister module to support embedding custom fonts: @pdf-lib/fontkit. You must add the @pdf-lib/fontkit module to your project and register it using pdfDoc.registerFontkit(...) before embedding custom fonts (see the font embedding example). This module is not included by default because not all users need it, and it increases bundle size. Installing this module is easy. Just like pdf-lib itself, @pdf-lib/fontkit can be installed with npm/yarn or as a UMD module.


            API documentation is available on the project site at https://pdf-lib.js.org/docs/api/. The repo for the project site (and generated documentation files) is located here: https://github.com/Hopding/pdf-lib-docs.
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
          • HTTPS


          • CLI

            gh repo clone Hopding/pdf-lib

          • sshUrl


          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link