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