UNPKG

@pdfme/pdf-lib

Version:

Create and modify PDF files with JavaScript

74 lines 2.59 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const PDFObject_1 = __importDefault(require("../objects/PDFObject")); const CharCodes_1 = __importDefault(require("../syntax/CharCodes")); const utils_1 = require("../../utils"); class PDFOperator { constructor(name, args) { Object.defineProperty(this, "name", { enumerable: true, configurable: true, writable: true, value: void 0 }); Object.defineProperty(this, "args", { enumerable: true, configurable: true, writable: true, value: void 0 }); this.name = name; this.args = args || []; } clone(context) { const args = new Array(this.args.length); for (let idx = 0, len = args.length; idx < len; idx++) { const arg = this.args[idx]; args[idx] = arg instanceof PDFObject_1.default ? arg.clone(context) : arg; } return PDFOperator.of(this.name, args); } toString() { let value = ''; for (let idx = 0, len = this.args.length; idx < len; idx++) { value += String(this.args[idx]) + ' '; } value += this.name; return value; } sizeInBytes() { let size = 0; for (let idx = 0, len = this.args.length; idx < len; idx++) { const arg = this.args[idx]; size += (arg instanceof PDFObject_1.default ? arg.sizeInBytes() : arg.length) + 1; } size += this.name.length; return size; } copyBytesInto(buffer, offset) { const initialOffset = offset; for (let idx = 0, len = this.args.length; idx < len; idx++) { const arg = this.args[idx]; if (arg instanceof PDFObject_1.default) { offset += arg.copyBytesInto(buffer, offset); } else { offset += (0, utils_1.copyStringIntoBuffer)(arg, buffer, offset); } buffer[offset++] = CharCodes_1.default.Space; } offset += (0, utils_1.copyStringIntoBuffer)(this.name, buffer, offset); return offset - initialOffset; } } Object.defineProperty(PDFOperator, "of", { enumerable: true, configurable: true, writable: true, value: (name, args) => new PDFOperator(name, args) }); exports.default = PDFOperator; //# sourceMappingURL=PDFOperator.js.map