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; } }, };