import PDFMetadata from '../metadata';
export default {
initMetadata() {
this.metadata = new PDFMetadata();
},
appendXML(xml, newline = true) {
this.metadata.append(xml, newline);
},
_addInfo() {
this.appendXML(`
${this.info.CreationDate.toISOString().split('.')[0] + 'Z'}
${this.info.Creator}
`);
if (this.info.Title || this.info.Author || this.info.Subject) {
this.appendXML(`
`);
if (this.info.Title) {
this.appendXML(`
${this.info.Title}
`);
}
if (this.info.Author) {
this.appendXML(`
${this.info.Author}
`);
}
if (this.info.Subject) {
this.appendXML(`
${this.info.Subject}
`);
}
this.appendXML(`
`);
}
this.appendXML(
`
${this.info.Creator}`,
false,
);
if (this.info.Keywords) {
this.appendXML(
`
${this.info.Keywords}`,
false,
);
}
this.appendXML(`
`);
},
endMetadata() {
this._addInfo();
this.metadata.end();
/*
Metadata was introduced in PDF 1.4, so adding it to 1.3
will likely only take up more space.
*/
if (this.version != 1.3) {
this.metadataRef = this.ref({
length: this.metadata.getLength(),
Type: 'Metadata',
Subtype: 'XML',
});
this.metadataRef.compress = false;
this.metadataRef.write(Buffer.from(this.metadata.getXML(), 'utf-8'));
this.metadataRef.end();
this._root.data.Metadata = this.metadataRef;
}
},
};