Coder Social home page Coder Social logo

pdf-to-png-converter's Introduction

pdf-to-png-converter

Node.js utility to convert PDF file/buffer pages to PNG files/buffers without binary and OS dependencies (except MacOs on arm64).

Tests on push

Getting started

MacOs M1 prerequisites

MacOs M1 dependencies prerequisites installation

arch -arm64 brew install pkg-config cairo pango libpng librsvg

Package installation

Installation:

npm install -D pdf-to-png-converter

Example

test(`Convert PDF To PNG`, async () => {
    const pngPages: PngPageOutput[] = await pdfToPng(pdfFilePath, // The function accepts PDF file path or a Buffer
    {
        disableFontFace: false, // When `false`, fonts will be rendered using a built-in font renderer that constructs the glyphs with primitive path commands. Default value is true.
        useSystemFonts: false, // When `true`, fonts that aren't embedded in the PDF document will fallback to a system font. Default value is false.
        enableXfa: false, // Render Xfa forms if any. Default value is false.
        viewportScale: 2.0, // The desired scale of PNG viewport. Default value is 1.0.
        outputFolder: 'output/folder', // Folder to write output PNG files. If not specified, PNG output will be available only as a Buffer content, without saving to a file.
        outputFileMask: 'buffer', // Output filename mask. Default value is 'buffer'.
        pdfFilePassword: 'pa$$word', // Password for encrypted PDF.
        pagesToProcess: [1, 3, 11],   // Subset of pages to convert (first page = 1), other pages will be skipped if specified.
        strictPagesToProcess: false, // When `true`, will throw an error if specified page number in pagesToProcess is invalid, otherwise will skip invalid page. Default value is false.
        verbosityLevel: 0 // Verbosity level. ERRORS: 0, WARNINGS: 1, INFOS: 5. Default value is 0.
    });
   ...
});

Output

{
    pageNumber: number; // Page number in PDF file
    name: string; // PNG page name in a format `{pdfFileName}_page_{pdfPageNumber}.png`
    content: Buffer; // PNG page Buffer content
    path: string; // Path to the rendered PNG page file (empty string and if outputFilesFolder is not provided)
    width: number; // PNG page width
    height: number; // PNG page height
}

Buy Me A Coffee

In case you want support my work

"Buy Me A Coffee"

pdf-to-png-converter's People

Contributors

dichovsky avatar ehadoux avatar lbhmygod avatar imagdich avatar dcampagnola avatar mike-plummer avatar rderimay avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.