UNPKG

@pdfme/pdf-lib

Version:

Create and modify PDF files with JavaScript

54 lines 2.11 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const fs_1 = __importDefault(require("fs")); const index_1 = require("../../../src/index"); const expectedPdfBytes = new Uint8Array(fs_1.default.readFileSync(`${__dirname}/data/stream-writer-1.pdf`)); const contentStreamText = ` BT /F1 24 Tf 100 100 Td (Hello World and stuff!) Tj ET `; describe(`PDFStreamWriter`, () => { it(`serializes PDFContext objects using Indirect Objects, Object Streams, and XRef Streams`, async () => { const context = index_1.PDFContext.create(); const contentStream = context.flateStream(contentStreamText); const contentStreamRef = index_1.PDFRef.of(9000); context.assign(contentStreamRef, contentStream); const fontDict = context.obj({ Type: 'Font', Subtype: 'Type1', Name: 'F1', BaseFont: 'Helvetica', Encoding: 'MacRomanEncoding', }); const fontDictRef = context.register(fontDict); const page = context.obj({ Type: 'Page', MediaBox: [0, 0, 612, 792], Contents: contentStreamRef, Resources: { Font: { F1: fontDictRef } }, }); const pageRef = context.register(page); const pages = context.obj({ Type: 'Pages', Kids: [pageRef], Count: 1, }); const pagesRef = context.register(pages); page.set(index_1.PDFName.of('Parent'), pagesRef); const catalog = context.obj({ Type: 'Catalog', Pages: pagesRef, }); context.trailerInfo.Root = context.register(catalog); const buffer = await index_1.PDFStreamWriter.forContext(context, Infinity, false, 2).serializeToBuffer(); expect(buffer.length).toBe(expectedPdfBytes.length); expect(buffer).toEqual(expectedPdfBytes); }); }); //# sourceMappingURL=PDFStreamWriter.spec.js.map