@pdfme/pdf-lib
Version:
Create and modify PDF files with JavaScript
74 lines • 2.59 kB
JavaScript
;
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