calipers-pdf

3.0.0 • Public • Published

calipers-pdf npm version Build Status

PDF Plugin for Calipers. It can be used to measure the page dimensions of a PDF and to check whether or not a PDF is encrypted (password-protected).

Installation

The Poppler library C++ interface is required for PDF support.

To install Poppler on Mac OS X using Homebrew:

brew install poppler

To install Poppler on Ubuntu:

apt-get install pkg-config
apt-get install libpoppler-cpp-dev

To use, install calipers and calipers-pdf via npm:

npm install calipers calipers-pdf

Usage

Calipers must be initialized by calling the required function with supported file types passed in, in this case 'pdf'.

// Initializes Calipers with support for calipers-pdf.
var Calipers = require('calipers')('pdf');

Calipers exposes a single function, measure, once initialized.

measure(filePath, [callback])

Measures the file at the given path.

  • filePath - The path of the file.
  • callback - called when the file has been measured
    • err - An Error is provided for unsupported file types or corrupt files.
    • result - Contains the following keys:
      • type - a string representing the file type (e.g. 'pdf')
      • encrypted - a boolean which is true if the PDF is encryted, false otherwise
      • pages - an array of objects with keys width and height which values are floating-point PostScript Point dimensions

Examples

var Calipers = require('calipers')('pdf');

// You can use a callback:
Calipers.measure('/path/to/document.pdf', function (err, result) {
  // result:
  // {
  //   type: 'pdf',
  //   encrypted: false,
  //   pages: [
  //     {
  //       width: 450,
  //       height: 670
  //     },
  //     {
  //       width: 450,
  //       height: 670
  //     }
  //   ]
  // }
});

// Or you can use promises:
Calipers.measure('/path/to/file.pdf')
.then(function (result) {
  // result:
  // {
  //   type: 'pdf',
  //   encrypted: false,
  //   pages: [
  //     {
  //       width: 450,
  //       height: 670
  //     }
  //   ]
  // }
});

// Or you can use async/await

const result = awawit Calipers.measure('/path/to/file.pdf')
  // result:
  // {
  //   type: 'pdf',
  //   encrypted: false,
  //   pages: [
  //     {
  //       width: 450,
  //       height: 670
  //     }
  //   ]
  // }
  

Issues/Bugs

Please report any issues in the core Calipers repository.

Contribute

The easiest and most helpful way to contribute is to find a file that calipers incorrectly measures, and submit a PR with the file. The tests automatically run against all files in the test/fixtures directory, so simply drop it into the appropriate subdirectory, and name it according to its size <width>x<height>x<pages>.pdf.

/calipers-pdf/

    Package Sidebar

    Install

    npm i calipers-pdf

    Weekly Downloads

    611

    Version

    3.0.0

    License

    MIT

    Unpacked Size

    862 kB

    Total Files

    24

    Last publish

    Collaborators

    • pkamatlob
    • philthelobster
    • ngnasr1123_lob
    • jayteelob
    • erik.forsman-lob
    • jkleung11
    • tanya.sah
    • hunteryoakum
    • rdimouro7373
    • lobstertroy
    • joshnkoy
    • michel_lob
    • haroutrs
    • kjones_lob
    • eamon-barisone
    • nathanielwaldschmidtlob
    • zach.reed
    • richpodrazalob
    • kencrim
    • jorgelob
    • nick-place-lob
    • andrew.guterres
    • hanqingchen-lob
    • juan.frissdekereki
    • mmorgan-lob
    • karankwatra-lob
    • joey-bates-lob
    • luke.birdeau
    • mg-lob
    • vmangwani
    • sachinlob
    • nick.perri
    • siddharthpant92
    • bethqiang
    • kplob
    • samkitsheth95
    • erin-doyle
    • jfdavidson
    • meussdorffer
    • shannamurry
    • amaan_lob
    • team.platform.lob.com
    • elijah-lob
    • jlowsley-lob
    • barnabygo
    • james.cho
    • douglaje
    • lob-owner
    • graeme.lowe.lob
    • mgartner