npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@lob/calipers-pdf

v3.0.1

Published

PDF plugin for calipers.

Downloads

10

Readme

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
  //     }
  //   ]
  // }
});

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.