@ironsoftware/ironpdf
Version:
IronPDF for Node
159 lines • 7.32 kB
JavaScript
;
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.mergePdfs = exports.renderHtmlFileToPdf = exports.renderHtmlToPdf = exports.renderUrlToPdf = exports.renderHtmlZipToPdf = void 0;
const fs_1 = __importDefault(require("fs"));
const access_1 = require("../../access");
const util_1 = require("../util");
const converter_1 = require("./converter");
const child_process_1 = require("child_process");
function renderHtmlZipToPdf(zipFilePath, mainHtmlFile = "Basic.html", renderOption, httpLoginCredentials) {
return __awaiter(this, void 0, void 0, function* () {
const client = yield access_1.Access.ensureConnection();
return new Promise((resolve, reject) => {
const stream = client.chromeRenderFromZipFile((err, value) => {
if (err) {
reject(`${err.name}/n${err.message}`);
}
else if (value) {
(0, util_1.handlePdfDocumentResultP__Output)(value, resolve, reject);
}
});
stream.write({
info: {
renderOptions: (0, converter_1.chromePdfRenderOptionsToProto)(renderOption),
httpOptions: (0, converter_1.httpLoginCredentialsToProto)(httpLoginCredentials),
mainFile: mainHtmlFile,
},
});
const buf = fs_1.default.readFileSync(zipFilePath);
if (buf) {
(0, util_1.chunkBuffer)(buf).forEach((chunk) => {
stream.write({ zipChunk: chunk });
});
}
stream.end();
});
});
}
exports.renderHtmlZipToPdf = renderHtmlZipToPdf;
function renderUrlToPdf(url, options) {
return __awaiter(this, void 0, void 0, function* () {
const client = yield access_1.Access.ensureConnection();
return new Promise((resolve, reject) => {
const req = {
uri: url.toString(),
renderOptions: (0, converter_1.chromePdfRenderOptionsToProto)(options === null || options === void 0 ? void 0 : options.renderOptions),
httpOptions: (0, converter_1.httpLoginCredentialsToProto)(options === null || options === void 0 ? void 0 : options.httpLoginCredentials),
};
client.Chrome_Render_FromUri(req, (err, value) => {
if (err) {
reject(`${err.name}/n${err.message}`);
}
else if (value) {
(0, util_1.handlePdfDocumentResultP__Output)(value, resolve, reject);
}
});
});
});
}
exports.renderUrlToPdf = renderUrlToPdf;
function renderHtmlToPdf(html, renderOption, httpLoginCredentials) {
return __awaiter(this, void 0, void 0, function* () {
const client = yield access_1.Access.ensureConnection();
return new Promise((resolve, reject) => {
const stream = client.Chrome_Render_FromHtml((err, value) => {
if (err) {
reject(`${err.name}/n${err.message}`);
}
else if (value) {
(0, util_1.handlePdfDocumentResultP__Output)(value, resolve, reject);
}
});
const info = {
renderOptions: (0, converter_1.chromePdfRenderOptionsToProto)(renderOption),
httpOptions: (0, converter_1.httpLoginCredentialsToProto)(httpLoginCredentials),
};
stream.write({ info: info });
const chunks = (0, util_1.chunkString)(html);
chunks === null || chunks === void 0 ? void 0 : chunks.forEach((chunk) => {
stream.write({ htmlChunk: chunk });
});
stream.end();
});
});
}
exports.renderHtmlToPdf = renderHtmlToPdf;
function renderHtmlFileToPdf(htmlPath, renderOption, httpLoginCredentials) {
return __awaiter(this, void 0, void 0, function* () {
const client = yield access_1.Access.ensureConnection();
function isIronPdfProcessRunning() {
try {
const cmd = process.platform === "win32" ? `tasklist` : `ps aux`;
const lines = (0, child_process_1.execSync)(cmd, { encoding: "utf-8" }).split("\n");
return lines.some(line => line.trim().startsWith("IronPdfEngineConsole"));
}
catch (err) {
return false;
}
}
if (!isIronPdfProcessRunning()) {
const htmlString = fs_1.default.readFileSync(htmlPath).toString();
return renderHtmlToPdf(htmlString, renderOption, httpLoginCredentials);
}
try {
return new Promise((resolve, reject) => {
const stream = client.Chrome_Render_FromHtmlFile((err, value) => {
if (err) {
reject(`${err.name}/n${err.message}`);
}
else if (value) {
(0, util_1.handlePdfDocumentResultP__Output)(value, resolve, reject);
}
});
const info = {
renderOptions: (0, converter_1.chromePdfRenderOptionsToProto)(renderOption),
httpOptions: (0, converter_1.httpLoginCredentialsToProto)(httpLoginCredentials),
};
stream.write({ info: info });
stream.write({ htmlPath: htmlPath });
stream.end();
});
}
catch (e) {
const htmlString = fs_1.default.readFileSync(htmlPath).toString();
return renderHtmlToPdf(htmlString, renderOption, httpLoginCredentials);
}
});
}
exports.renderHtmlFileToPdf = renderHtmlFileToPdf;
function mergePdfs(pdfIds) {
return __awaiter(this, void 0, void 0, function* () {
const client = yield access_1.Access.ensureConnection();
return new Promise((resolve, reject) => {
client.pdfiumPageMerge({
documents: pdfIds.map((value) => ({ documentId: value })),
}, (err, value) => {
if (err) {
reject(`${err.name}/n${err.message}`);
}
else if (value) {
(0, util_1.handlePdfDocumentResultP__Output)(value, resolve, reject);
}
});
});
});
}
exports.mergePdfs = mergePdfs;
//# sourceMappingURL=render.js.map