From 5afe02be60771349e4a8ed066ea97db3d4dd29ac Mon Sep 17 00:00:00 2001 From: Fabrizio Ruggeri Date: Sat, 2 Mar 2019 00:29:34 +0100 Subject: [PATCH] Allow page input option to be set for PDF (#1595) --- docs/api-constructor.md | 2 +- lib/constructor.js | 2 +- src/common.cc | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/api-constructor.md b/docs/api-constructor.md index 263118d9..6604edff 100644 --- a/docs/api-constructor.md +++ b/docs/api-constructor.md @@ -12,7 +12,7 @@ - `options.failOnError` **[Boolean][4]** by default halt processing and raise an error when loading invalid images. Set this flag to `false` if you'd rather apply a "best effort" to decode images, even if the data is corrupt or invalid. (optional, default `true`) - `options.density` **[Number][5]** number representing the DPI for vector images. (optional, default `72`) - - `options.page` **[Number][5]** page number to extract for multi-page input (GIF, TIFF) (optional, default `0`) + - `options.page` **[Number][5]** page number to extract for multi-page input (GIF, TIFF, PDF) (optional, default `0`) - `options.raw` **[Object][3]?** describes raw pixel input image data. See `raw()` for pixel ordering. - `options.raw.width` **[Number][5]?** - `options.raw.height` **[Number][5]?** diff --git a/lib/constructor.js b/lib/constructor.js index 442594f4..498fa89b 100644 --- a/lib/constructor.js +++ b/lib/constructor.js @@ -64,7 +64,7 @@ const debuglog = util.debuglog('sharp'); * @param {Boolean} [options.failOnError=true] - by default halt processing and raise an error when loading invalid images. * Set this flag to `false` if you'd rather apply a "best effort" to decode images, even if the data is corrupt or invalid. * @param {Number} [options.density=72] - number representing the DPI for vector images. - * @param {Number} [options.page=0] - page number to extract for multi-page input (GIF, TIFF) + * @param {Number} [options.page=0] - page number to extract for multi-page input (GIF, TIFF, PDF) * @param {Object} [options.raw] - describes raw pixel input image data. See `raw()` for pixel ordering. * @param {Number} [options.raw.width] * @param {Number} [options.raw.height] diff --git a/src/common.cc b/src/common.cc index 7b7c01ad..6d3f870c 100644 --- a/src/common.cc +++ b/src/common.cc @@ -71,7 +71,7 @@ namespace sharp { descriptor->rawWidth = AttrTo(input, "rawWidth"); descriptor->rawHeight = AttrTo(input, "rawHeight"); } - // Page input for multi-page TIFF + // Page input for multi-page TIFF, PDF if (HasAttr(input, "page")) { descriptor->page = AttrTo(input, "page"); } @@ -243,7 +243,7 @@ namespace sharp { if (imageType == ImageType::MAGICK) { option->set("density", std::to_string(descriptor->density).data()); } - if (imageType == ImageType::TIFF) { + if (imageType == ImageType::TIFF || imageType == ImageType::PDF) { option->set("page", descriptor->page); } image = VImage::new_from_buffer(descriptor->buffer, descriptor->bufferLength, nullptr, option); @@ -288,7 +288,7 @@ namespace sharp { if (imageType == ImageType::MAGICK) { option->set("density", std::to_string(descriptor->density).data()); } - if (imageType == ImageType::TIFF) { + if (imageType == ImageType::TIFF || imageType == ImageType::PDF) { option->set("page", descriptor->page); } image = VImage::new_from_file(descriptor->file.data(), option);