UNPKG

@ironsoftware/ironpdf

Version:

IronPDF for Node

76 lines 3.32 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.extractRawImages = exports.rasterizeToImageBuffers = void 0; const access_1 = require("../../access"); const util_1 = require("../util"); function rasterizeToImageBuffers(id, pdfPageSelection) { return __awaiter(this, void 0, void 0, function* () { const client = yield access_1.Access.ensureConnection(); const pi = yield (0, util_1.AsyncPdfPageSelectionToIndexes)(id, pdfPageSelection); return new Promise((resolve, reject) => { const stream = client.pdfiumImagePdfToImages({ document: { documentId: id }, dpi: 96, pageIndexes: pi, }); handleImageResultStream(stream, resolve, reject); }); }); } exports.rasterizeToImageBuffers = rasterizeToImageBuffers; function extractRawImages(id, pdfPageSelection) { return __awaiter(this, void 0, void 0, function* () { const client = yield access_1.Access.ensureConnection(); const pi = yield (0, util_1.AsyncPdfPageSelectionToIndexes)(id, pdfPageSelection); return new Promise((resolve, reject) => { const stream = client.pdfiumImageExtractAllRawImages({ document: { documentId: id }, pageIndexes: pi, }); handleImageResultStream(stream, resolve, reject); }); }); } exports.extractRawImages = extractRawImages; function handleImageResultStream(stream, resolve, reject) { const temp = []; stream.on("data", (data) => { if (data.exception) { reject(`${data.exception.message}/n${data.exception.remoteStackTrace}`); } else if (data.rawImagesChunk) { if (data.rawImagesChunk) { temp.push({ imageIndex: data.rawImagesChunk.imageIndex, buffer: data.rawImagesChunk.rawImageChunk, }); } } }); stream.on("end", () => { const groupedData = temp.reduce((result, item) => { if ((0, util_1.isNullOrUndefined)(result[item.imageIndex])) { result[item.imageIndex] = Buffer.from([]); } const oldItem = result[item.imageIndex]; if (!(0, util_1.isNullOrUndefined)(oldItem)) { result[item.imageIndex] = Buffer.concat([ oldItem, item.buffer, ]); } return result; }, {}); return resolve(Object.values(groupedData)); }); } //# sourceMappingURL=image.js.map