mirror of
https://github.com/foliojs/pdfkit.git
synced 2025-12-08 20:15:54 +00:00
* Added PDF/A-2 and PDF/A-3 subsets A and B It seems like PDF/A-2 and PDF/A-3 are not very different from PDF/A-1 as far as the A and B subsets are concerned (A requires tagging which PDFKit supports already). With this change, we can let the generated PDF present itself as PDF/A-2 or PDF/A-3. * Updated docs and changelog for new PDF/A subsets * Fixed an issue where ICC profile path can be wrong for built package but good for tests
88 lines
2.5 KiB
JavaScript
88 lines
2.5 KiB
JavaScript
import PDFDocument from '../../lib/document';
|
|
import { logData, joinTokens } from './helpers';
|
|
|
|
describe('PDF/A-2', () => {
|
|
|
|
test('metadata is present', () => {
|
|
let options = {
|
|
autoFirstPage: false,
|
|
pdfVersion: '1.7',
|
|
subset: 'PDF/A-2'
|
|
};
|
|
let doc = new PDFDocument(options);
|
|
const data = logData(doc);
|
|
doc.end();
|
|
expect(data).toContainChunk([
|
|
`11 0 obj`,
|
|
`<<\n/length 892\n/Type /Metadata\n/Subtype /XML\n/Length 894\n>>`
|
|
]);
|
|
});
|
|
|
|
test('color profile is present', () => {
|
|
const expected = [
|
|
`10 0 obj`,
|
|
joinTokens(
|
|
'<<',
|
|
'/Type /OutputIntent',
|
|
'/S /GTS_PDFA1',
|
|
'/Info (sRGB IEC61966-2.1)',
|
|
'/OutputConditionIdentifier (sRGB IEC61966-2.1)',
|
|
'/DestOutputProfile 9 0 R',
|
|
'>>'
|
|
),
|
|
];
|
|
let options = {
|
|
autoFirstPage: false,
|
|
pdfVersion: '1.7',
|
|
subset: 'PDF/A-2'
|
|
};
|
|
let doc = new PDFDocument(options);
|
|
const data = logData(doc);
|
|
doc.end();
|
|
expect(data).toContainChunk(expected);
|
|
});
|
|
|
|
test('metadata contains pdfaid part and conformance', () => {
|
|
let options = {
|
|
autoFirstPage: false,
|
|
pdfVersion: '1.7',
|
|
subset: 'PDF/A-2'
|
|
};
|
|
let doc = new PDFDocument(options);
|
|
const data = logData(doc);
|
|
doc.end();
|
|
let metadata = Buffer.from(data[27]).toString();
|
|
|
|
expect(metadata).toContain('pdfaid:part>2');
|
|
expect(metadata).toContain('pdfaid:conformance');
|
|
});
|
|
|
|
test('metadata pdfaid conformance B', () => {
|
|
let options = {
|
|
autoFirstPage: false,
|
|
pdfVersion: '1.7',
|
|
subset: 'PDF/A-2b'
|
|
};
|
|
let doc = new PDFDocument(options);
|
|
const data = logData(doc);
|
|
doc.end();
|
|
let metadata = Buffer.from(data[27]).toString();
|
|
|
|
expect(metadata).toContain('pdfaid:conformance>B');
|
|
});
|
|
|
|
test('metadata pdfaid conformance A', () => {
|
|
let options = {
|
|
autoFirstPage: false,
|
|
pdfVersion: '1.7',
|
|
subset: 'PDF/A-2a'
|
|
};
|
|
let doc = new PDFDocument(options);
|
|
const data = logData(doc);
|
|
doc.end();
|
|
let metadata = Buffer.from(data[27]).toString();
|
|
|
|
expect(metadata).toContain('pdfaid:conformance>A');
|
|
});
|
|
|
|
}); |