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.

Readme

Keywords

Package Sidebar

Install

npm i calipers-pdf

Weekly Downloads

321

Version

3.0.0

License

MIT

Unpacked Size

862 kB

Total Files

24

Last publish

Collaborators

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