UNPKG

@pdfme/pdf-lib

Version:

Create and modify PDF files with JavaScript

84 lines 3.23 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const PDFDict_1 = __importDefault(require("../objects/PDFDict")); const PDFName_1 = __importDefault(require("../objects/PDFName")); const acroform_1 = require("../acroform"); const ViewerPreferences_1 = __importDefault(require("../interactive/ViewerPreferences")); class PDFCatalog extends PDFDict_1.default { Pages() { return this.lookup(PDFName_1.default.of('Pages'), PDFDict_1.default); } AcroForm() { return this.lookupMaybe(PDFName_1.default.of('AcroForm'), PDFDict_1.default); } getAcroForm() { const dict = this.AcroForm(); if (!dict) return undefined; return acroform_1.PDFAcroForm.fromDict(dict); } getOrCreateAcroForm() { let acroForm = this.getAcroForm(); if (!acroForm) { acroForm = acroform_1.PDFAcroForm.create(this.context); const acroFormRef = this.context.register(acroForm.dict); this.set(PDFName_1.default.of('AcroForm'), acroFormRef); } return acroForm; } ViewerPreferences() { return this.lookupMaybe(PDFName_1.default.of('ViewerPreferences'), PDFDict_1.default); } getViewerPreferences() { const dict = this.ViewerPreferences(); if (!dict) return undefined; return ViewerPreferences_1.default.fromDict(dict); } getOrCreateViewerPreferences() { let viewerPrefs = this.getViewerPreferences(); if (!viewerPrefs) { viewerPrefs = ViewerPreferences_1.default.create(this.context); const viewerPrefsRef = this.context.register(viewerPrefs.dict); this.set(PDFName_1.default.of('ViewerPreferences'), viewerPrefsRef); } return viewerPrefs; } /** * Inserts the given ref as a leaf node of this catalog's page tree at the * specified index (zero-based). Also increments the `Count` of each node in * the page tree hierarchy to accomodate the new page. * * Returns the ref of the PDFPageTree node into which `leafRef` was inserted. */ insertLeafNode(leafRef, index) { const pagesRef = this.get(PDFName_1.default.of('Pages')); const maybeParentRef = this.Pages().insertLeafNode(leafRef, index); return maybeParentRef || pagesRef; } removeLeafNode(index) { this.Pages().removeLeafNode(index); } } Object.defineProperty(PDFCatalog, "withContextAndPages", { enumerable: true, configurable: true, writable: true, value: (context, pages) => { const dict = new Map(); dict.set(PDFName_1.default.of('Type'), PDFName_1.default.of('Catalog')); dict.set(PDFName_1.default.of('Pages'), pages); return new PDFCatalog(dict, context); } }); Object.defineProperty(PDFCatalog, "fromMapWithContext", { enumerable: true, configurable: true, writable: true, value: (map, context) => new PDFCatalog(map, context) }); exports.default = PDFCatalog; //# sourceMappingURL=PDFCatalog.js.map