Nachos Preventing Motivation

    node-qpdf2
    TypeScript icon, indicating that this package has built-in type declarations

    4.1.0 • Public • Published

    node-qpdf2

    Maintenance Node.js CI CodeQL npm npm qpdf 11+

    A very simple wrapper for qpdf which is performs content-preserving transformations on PDF files. It includes encrypting and decrypting PDF files with AES 256, AES 128, RC4 (128 & 40) encryption algorithms. This is a fork of nrhirani/node-qpdf, adding Promises and Types, and is kept mostly up to date with qpdf.

    Dependencies

    • qpdf
      • Version 11 is the minimum version for node-qpdf2 4.0+

    Installation

    1. Install qpdf:
    2. Install node-qpdf:
      npm install node-qpdf2
      

    Serverless?

    This package can be uses on serverless platforms by using your vendor's layers functionality. Use the zip release from qpdf as the layer. For example, qpdf-11.1.0-bin-linux-x86_64.zip can be directly uploaded as a layer, and has been tested using Amazon Lambda.

    Encryption

    You can encrypt your PDF by following:

    import { encrypt } from "node-qpdf2";
    
    const pdf = {
      input: "./test/example.pdf",
      output: "/tmp/encrypted.pdf",
      password: "1234",
    }
    
    await encrypt(pdf);
    

    Options for Encryption

    Please see src/encrypt.ts for the latest options, as well as QPDF's documentation for information on what each restriction does.

    Examples

    Render and Save:

    import { encrypt } from "node-qpdf2";
    
    const options = {
        input: "./test/example.pdf",
        keyLength: 128,
        output: "/tmp/encrypted.pdf",
        password: 'YOUR_PASSWORD_TO_ENCRYPT',
        restrictions: {
            print: 'low',
            useAes: 'y'
        }
    }
    
    await encrypt(options);
    

    Decryption

    You can decrypt your PDF by following:

    import { decrypt } from "node-qpdf2";
    
    const options = {
      input: "/tmp/encrypted.pdf",
      output: "/tmp/decrypted.pdf",
      password: "YOUR_PASSWORD_TO_DECRYPT_PDF",
    }
    
    await decrypt(options);
    

    CJS

    If you use CJS, you'll need to specify the function you want to require.

    const decrypt = require("node-qpdf").decrypt;
    

    Coverage

    File % Stmts % Branch % Funcs % Lines Uncovered Line #s
    All files 100 100 100 100
    decrypt.ts 100 100 100 100
    encrypt.ts 100 100 100 100
    index.ts 100 100 100 100
    spawn.ts 100 100 100 100
    utils.ts 100 100 100 100

    Contributing

    Maintained by Kyle McNally.

    Bug reports and pull requests are welcome on GitHub at https://github.com/Sparticuz/node-qpdf2.

    Sponsorship is also welcome

    License

    The npm package is available as open source under the terms of the MIT License.

    Install

    npm i node-qpdf2

    DownloadsWeekly Downloads

    3,287

    Version

    4.1.0

    License

    MIT

    Unpacked Size

    17.3 kB

    Total Files

    13

    Last publish

    Collaborators

    • sparticuz