@pdfme/pdf-lib
Version:
Create and modify PDF files with JavaScript
72 lines • 3.84 kB
JavaScript
;
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 core_1 = require("../../../src/core");
const greyscalePng = fs_1.default.readFileSync('./assets/images/greyscale_bird.png');
const rgbaPng = fs_1.default.readFileSync('./assets/images/minions_banana_alpha.png');
const rgbPng = fs_1.default.readFileSync('./assets/images/minions_banana_no_alpha.png');
describe(`PngEmbedder`, () => {
it(`can be constructed with PngEmbedder.for(...)`, async () => {
const embedder = await core_1.PngEmbedder.for(greyscalePng);
expect(embedder).toBeInstanceOf(core_1.PngEmbedder);
});
it(`can embed PNG images into PDFContexts with a predefined ref`, async () => {
const context = core_1.PDFContext.create();
const predefinedRef = core_1.PDFRef.of(9999);
const embedder = await core_1.PngEmbedder.for(greyscalePng);
expect(context.enumerateIndirectObjects().length).toBe(0);
const ref = await embedder.embedIntoContext(context, predefinedRef);
expect(context.enumerateIndirectObjects().length).toBe(1);
expect(context.lookup(predefinedRef)).toBeInstanceOf(core_1.PDFRawStream);
expect(ref).toBe(predefinedRef);
});
it(`can embed greyscale PNG images into PDFContexts`, async () => {
const context = core_1.PDFContext.create();
const embedder = await core_1.PngEmbedder.for(greyscalePng);
expect(context.enumerateIndirectObjects().length).toBe(0);
const ref = await embedder.embedIntoContext(context);
expect(context.enumerateIndirectObjects().length).toBe(1);
expect(context.lookup(ref)).toBeInstanceOf(core_1.PDFRawStream);
});
it(`can embed RGBA PNG images into PDFContexts`, async () => {
const context = core_1.PDFContext.create();
const embedder = await core_1.PngEmbedder.for(rgbaPng);
expect(context.enumerateIndirectObjects().length).toBe(0);
const ref = await embedder.embedIntoContext(context);
expect(context.enumerateIndirectObjects().length).toBe(2);
expect(context.lookup(ref)).toBeInstanceOf(core_1.PDFRawStream);
});
it(`can embed RGB PNG images into PDFContexts`, async () => {
const context = core_1.PDFContext.create();
const embedder = await core_1.PngEmbedder.for(rgbPng);
expect(context.enumerateIndirectObjects().length).toBe(0);
const ref = await embedder.embedIntoContext(context);
expect(context.enumerateIndirectObjects().length).toBe(1);
expect(context.lookup(ref)).toBeInstanceOf(core_1.PDFRawStream);
});
it(`can extract properties of greyscale PNG images`, async () => {
const embedder = await core_1.PngEmbedder.for(greyscalePng);
expect(embedder.bitsPerComponent).toBe(8);
expect(embedder.height).toBe(375);
expect(embedder.width).toBe(600);
expect(embedder.colorSpace).toBe('DeviceRGB');
});
it(`can extract properties of RGBA PNG images`, async () => {
const embedder = await core_1.PngEmbedder.for(rgbaPng);
expect(embedder.bitsPerComponent).toBe(8);
expect(embedder.height).toBe(640);
expect(embedder.width).toBe(960);
expect(embedder.colorSpace).toBe('DeviceRGB');
});
it(`can extract properties of RGB PNG images`, async () => {
const embedder = await core_1.PngEmbedder.for(rgbPng);
expect(embedder.bitsPerComponent).toBe(8);
expect(embedder.height).toBe(640);
expect(embedder.width).toBe(960);
expect(embedder.colorSpace).toBe('DeviceRGB');
});
});
//# sourceMappingURL=PngEmbedder.spec.js.map