diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/generate.ts | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/lib/generate.ts b/src/lib/generate.ts new file mode 100644 index 0000000..4787f56 --- /dev/null +++ b/src/lib/generate.ts @@ -0,0 +1,21 @@ +"use server"; + +import { Invoice } from "@/models/invoice"; +import PDFDocument from "pdfkit"; +import blobStream from "blob-stream"; + +export async function generateInvoice(invoice: Invoice): Promise<Blob> { + const doc = new PDFDocument(); + const stream = doc.pipe(blobStream()); + + doc.text("Invoice from " + invoice.from); + + doc.end(); + return new Promise((resolve, reject) => { + stream.on("finish", () => { + const blob = stream.toBlob(); + resolve(blob); + }); + stream.on("error", reject); + }); +} |
