diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/cover/cover-service.ts | 60 |
1 files changed, 24 insertions, 36 deletions
diff --git a/lib/cover/cover-service.ts b/lib/cover/cover-service.ts index eecc289b..6db0c9b4 100644 --- a/lib/cover/cover-service.ts +++ b/lib/cover/cover-service.ts @@ -2,7 +2,6 @@ import { PDFNet } from "@pdftron/pdfnet-node" import { promises as fs } from "fs" import path from "path" -import { file as tmpFile } from "tmp-promise" import db from "@/db/db" import { projectCoverTemplates, projects } from "@/db/schema" import { eq, and } from "drizzle-orm" @@ -147,40 +146,29 @@ export async function generateCoverPage( const result = await PDFNet.runWithCleanup(async () => { console.log("π PDFTron μ΄κΈ°ν λ° λ³μ μΉν μμ") - // μμ νμΌ μμ± (κ²°κ³Όλ¬Ό μ μ₯μ©) - const { path: tempOutputPath, cleanup } = await tmpFile({ - postfix: ".docx", - }) - - try { - // ν
νλ¦Ώ λ‘λ λ° λ³μ μΉν - console.log("π ν
νλ¦Ώ λ‘λ μ€...") - const templateDoc = await PDFNet.Convert.createOfficeTemplateWithPath( - templateFilePath - ) - - console.log("π λ³μ μΉν μ€...") - // JSON ννλ‘ λ³μ μ λ¬νμ¬ μΉν - const resultDoc = await templateDoc.fillTemplateJson( - JSON.stringify(templateData) - ) - - console.log("πΎ κ²°κ³Ό νμΌ μ μ₯ μ€...") - // μμ νμΌλ‘ μ μ₯ - await resultDoc.save(tempOutputPath, PDFNet.SDFDoc.SaveOptions.e_linearized) - - console.log("β
λ³μ μΉν μλ£") - - // νμΌ μ½κΈ° - const buffer = await fs.readFile(tempOutputPath) - - return { - success: true, - buffer: Buffer.from(buffer), - } - } finally { - // μμ νμΌ μ 리 - await cleanup() + // ν
νλ¦Ώ λ‘λ λ° λ³μ μΉν + console.log("π ν
νλ¦Ώ λ‘λ μ€...") + const templateDoc = await PDFNet.Convert.createOfficeTemplateWithPath( + templateFilePath + ) + + console.log("π λ³μ μΉν μ€...") + // JSON ννλ‘ λ³μ μ λ¬νμ¬ μΉν + const resultDoc = await templateDoc.fillTemplateJson( + JSON.stringify(templateData) + ) + + console.log("πΎ λ©λͺ¨λ¦¬ λ²νΌλ‘ μ μ₯ μ€...") + // λ©λͺ¨λ¦¬μμ μ§μ λ²νΌ κ°μ Έμ€κΈ° (μμ νμΌ λΆνμ) + const buffer = await resultDoc.saveMemoryBuffer( + PDFNet.SDFDoc.SaveOptions.e_linearized + ) + + console.log("β
λ³μ μΉν λ° PDF μμ± μλ£") + + return { + success: true, + buffer: Buffer.from(buffer), } }, process.env.NEXT_PUBLIC_PDFTRON_SERVER_KEY) @@ -192,7 +180,7 @@ export async function generateCoverPage( } // 7. νμΌλͺ
μμ± - const fileName = `${docNumber}_cover.docx` + const fileName = `${docNumber}_cover.pdf` console.log(`β
컀λ²νμ΄μ§ μμ± μλ£: ${fileName}`) |
