UNPKG

@ironsoftware/ironpdf

Version:

IronPDF for Node

135 lines 6.06 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()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.compressInMemoryStream = exports.compressInMemory = exports.compressAndSaveAs = exports.compressStructTree = exports.compressImage = void 0; const access_1 = require("../../access"); const util_1 = require("../util"); const stream_1 = require("stream"); const fs_1 = __importDefault(require("fs")); function compressImage(id, imageQuality, scaleToVisibleSize = false) { return __awaiter(this, void 0, void 0, function* () { const client = yield access_1.Access.ensureConnection(); return new Promise((resolve, reject) => { client.Pdfium_Compress_CompressImages({ document: { documentId: id }, scaleToVisibleSize: scaleToVisibleSize, quality: imageQuality, }, (err, value) => { if (err) { reject(`${err.name}/n${err.message}`); } else if (value) { (0, util_1.handleEmptyResultP__Output)(value, reject); resolve(); } }); }); }); } exports.compressImage = compressImage; function compressStructTree(id) { return __awaiter(this, void 0, void 0, function* () { const client = yield access_1.Access.ensureConnection(); return new Promise((resolve, reject) => { client.Pdfium_Compress_RemoveStructTree({ document: { documentId: id } }, (err, value) => { if (err) { reject(`${err.name}/n${err.message}`); } else if (value) { (0, util_1.handleEmptyResultP__Output)(value, reject); resolve(); } }); }); }); } exports.compressStructTree = compressStructTree; function compressAndSaveAs(id, outputPath, imageQuality) { return __awaiter(this, void 0, void 0, function* () { const client = yield access_1.Access.ensureConnection(); return new Promise((resolve, reject) => { const request = Object.assign({ document: { documentId: id }, outputPath: "", password: "" }, (imageQuality !== undefined ? { jpeg: imageQuality } : {})); const stream = client.QPdf_Compression_CompressAndSaveAs(request); const buffers = []; stream.on("data", (data) => { if (data.exception) { reject(`${data.exception.message}/n${data.exception.remoteStackTrace}`); } else if (data.resultChunk) { buffers.push(data.resultChunk); } }); stream.on("error", (err) => { reject(`${err.name}/n${err.message}`); }); stream.on("end", () => { fs_1.default.writeFileSync(outputPath, Buffer.concat(buffers)); resolve(); }); }); }); } exports.compressAndSaveAs = compressAndSaveAs; function compressInMemory(id, imageQuality) { return __awaiter(this, void 0, void 0, function* () { const client = yield access_1.Access.ensureConnection(); return new Promise((resolve, reject) => { const request = Object.assign({ document: { documentId: id }, outputPath: "", password: "" }, (imageQuality !== undefined ? { jpeg: imageQuality } : {})); const stream = client.QPdf_Compression_CompressAndSaveAs(request); const buffers = []; stream.on("data", (data) => { if (data.exception) { reject(`${data.exception.message}/n${data.exception.remoteStackTrace}`); } else if (data.resultChunk) { buffers.push(data.resultChunk); } }); stream.on("error", (err) => { reject(`${err.name}/n${err.message}`); }); stream.on("end", () => { resolve(Buffer.concat(buffers)); }); }); }); } exports.compressInMemory = compressInMemory; function compressInMemoryStream(id, imageQuality) { return __awaiter(this, void 0, void 0, function* () { const client = yield access_1.Access.ensureConnection(); const passThrough = new stream_1.PassThrough(); const request = Object.assign({ document: { documentId: id }, outputPath: "", password: "" }, (imageQuality !== undefined ? { jpeg: imageQuality } : {})); const stream = client.QPdf_Compression_CompressAndSaveAs(request); stream.on("data", (data) => { if (data.exception) { passThrough.destroy(new Error(`${data.exception.message}/n${data.exception.remoteStackTrace}`)); } else if (data.resultChunk) { passThrough.write(data.resultChunk); } }); stream.on("error", (err) => { passThrough.destroy(err); }); stream.on("end", () => { passThrough.end(); }); return passThrough; }); } exports.compressInMemoryStream = compressInMemoryStream; //# sourceMappingURL=compress.js.map