fix(api): include pdfmake Roboto fonts in runtime image
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import PdfPrinter from "pdfmake/src/Printer";
|
||||
import { readFileSync } from "node:fs";
|
||||
import { existsSync, readFileSync } from "node:fs";
|
||||
import { join } from "node:path";
|
||||
|
||||
export interface QuoteLineItem {
|
||||
@@ -110,7 +110,26 @@ const COMPANY = {
|
||||
|
||||
const DEFAULT_LOGO_PATH = join(process.cwd(), "logo.png");
|
||||
|
||||
const fontDir = join(process.cwd(), "node_modules/pdfmake/build/fonts/Roboto");
|
||||
function resolveRobotoFontDir(): string {
|
||||
const candidates = [
|
||||
join(process.cwd(), "node_modules/pdfmake/build/fonts/Roboto"),
|
||||
join(import.meta.dir, "../../../node_modules/pdfmake/build/fonts/Roboto"),
|
||||
join("/app/node_modules/pdfmake/build/fonts/Roboto"),
|
||||
join("/app/api/node_modules/pdfmake/build/fonts/Roboto"),
|
||||
];
|
||||
|
||||
for (const dir of candidates) {
|
||||
if (existsSync(join(dir, "Roboto-Medium.ttf"))) {
|
||||
return dir;
|
||||
}
|
||||
}
|
||||
|
||||
throw new Error(
|
||||
`[pdf] Could not locate pdfmake Roboto fonts. Checked: ${candidates.join(", ")}`
|
||||
);
|
||||
}
|
||||
|
||||
const fontDir = resolveRobotoFontDir();
|
||||
const fonts = {
|
||||
Roboto: {
|
||||
normal: join(fontDir, "Roboto-Regular.ttf"),
|
||||
|
||||
Reference in New Issue
Block a user