@zola_do/document-manipulator
v0.1.10
Published
PDF/DOCX merge, conversion, template population for NestJS
Downloads
161
Readme
@zola_do/document-manipulator
PDF and DOCX merge, conversion, and template population for NestJS.
Installation
# Install individually
npm install @zola_do/document-manipulator
# Or via meta package
npm install @zola_do/nestjs-sharedDependencies
This package depends on:
@zola_do/minio— Object storage for documentsdocx-templates— DOCX template fillingpdf-lib— PDF manipulationlibreoffice-convert— Document format conversion (requires LibreOffice installed)
Usage
Module Setup
import { Module } from '@nestjs/common';
import { DocumentManipulatorModule } from '@zola_do/document-manipulator';
import { MinIoModule } from '@zola_do/minio';
@Module({
imports: [MinIoModule, DocumentManipulatorModule],
})
export class AppModule {}Merging PDFs
import { Injectable } from '@nestjs/common';
import { DocumentManipulatorService } from '@zola_do/document-manipulator';
@Injectable()
export class ReportService {
constructor(private readonly docService: DocumentManipulatorService) {}
async mergePdfs(pdfBuffers: Buffer[]) {
await this.docService.mergePdf(pdfBuffers);
// Merged PDF uploaded to MinIO
}
}Merging DOCX
await this.docService.mergeDocx(docxBuffers);Populating Templates
Fill DOCX templates with data:
const populatedBuffer = await this.docService.populateTemplate(
templateBuffer,
{ public_body: 'Procurement of procedure' },
);Converting Documents
Convert between formats (requires LibreOffice):
const htmlBuffer = await this.docService.convertDocument(
docxBuffer,
'.html',
);Exports
DocumentManipulatorModule— Register the moduleDocumentManipulatorService— Merge, convert, populate templatesFileHelperService— File utilities
Related Packages
- @zola_do/docx — DOCX template processing
- @zola_do/minio — Required for storage
