diff options
| author | mihailo.vojinovic <mihailonvojinovic@gmail.com> | 2026-02-11 16:56:14 +0100 |
|---|---|---|
| committer | mihailo.vojinovic <mihailonvojinovic@gmail.com> | 2026-02-11 16:56:14 +0100 |
| commit | da6d744208ee91c6beabd6e1bd735d17c951e393 (patch) | |
| tree | 8d9f3c22d66078c5838560c342d3f132af31d9bf /src/lib | |
| parent | 813454a9ef543f55b7dafb717660c4cbbf8d22b2 (diff) | |
| download | invoice-da6d744208ee91c6beabd6e1bd735d17c951e393.tar.gz invoice-da6d744208ee91c6beabd6e1bd735d17c951e393.zip | |
Add generate invlice server action
Diffstat (limited to 'src/lib')
| -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); + }); +} |
