@pdfme/pdf-lib
Version:
Create and modify PDF files with JavaScript
54 lines • 2.64 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 index_1 = require("../../../src/index");
const fancyFieldsPdfBytes = fs_1.default.readFileSync('assets/pdfs/fancy_fields.pdf');
const pdfDocPromise = index_1.PDFDocument.load(fancyFieldsPdfBytes);
describe(`PDFCheckBox`, () => {
it(`can read its value`, async () => {
const pdfDoc = await pdfDocPromise;
const form = pdfDoc.getForm();
const isAFairy = form.getCheckBox('Are You A Fairy? 🌿');
const isPowerLevelOver9000 = form.getCheckBox('Is Your Power Level Over 9000? 💪');
const onePunch = form.getCheckBox('Can You Defeat Enemies In One Punch? 👊');
const everLetMeDown = form.getCheckBox('Will You Ever Let Me Down? ☕️');
expect(isAFairy.isChecked()).toBe(true);
expect(isPowerLevelOver9000.isChecked()).toBe(false);
expect(onePunch.isChecked()).toBe(true);
expect(everLetMeDown.isChecked()).toBe(false);
});
it(`can read its flag states`, async () => {
const pdfDoc = await pdfDocPromise;
const form = pdfDoc.getForm();
const isAFairy = form.getCheckBox('Are You A Fairy? 🌿');
expect(isAFairy.isExported()).toBe(true);
expect(isAFairy.isReadOnly()).toBe(false);
expect(isAFairy.isRequired()).toBe(false);
});
it(`produces printable widgets when added to a page`, async () => {
const pdfDoc = await index_1.PDFDocument.create();
const page = pdfDoc.addPage();
const form = pdfDoc.getForm();
const checkBox = form.createCheckBox('a.new.check.box');
const widgets = () => checkBox.acroField.getWidgets();
expect(widgets().length).toBe(0);
checkBox.addToPage(page);
expect(widgets().length).toBe(1);
expect(widgets()[0].hasFlag(index_1.AnnotationFlags.Print)).toBe(true);
});
it(`sets page reference when added to a page`, async () => {
const pdfDoc = await index_1.PDFDocument.create();
const page = pdfDoc.addPage();
const form = pdfDoc.getForm();
const checkBox = form.createCheckBox('a.new.check.box');
const widgets = () => checkBox.acroField.getWidgets();
expect(widgets().length).toBe(0);
checkBox.addToPage(page);
expect(widgets().length).toBe(1);
expect(widgets()[0].P()).toBe(page.ref);
});
});
//# sourceMappingURL=PDFCheckBox.spec.js.map