aboutsummaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/generate.ts21
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);
+ });
+}