import { PDFDocument } from "pdf-lib";
import * as fs from "fs";

export const mergePdf = async (
  pdfPath1: any,
  pdfPath2: any,
  outputPath: any
) => {
  try {
    // Read both PDFs
    const pdf1Bytes = fs.readFileSync(pdfPath1);
    const pdf2Bytes = fs.readFileSync(pdfPath2);

    // Load PDF documents
    const pdf1 = await PDFDocument.load(pdf1Bytes);
    const pdf2 = await PDFDocument.load(pdf2Bytes);

    // Create a new merged PDF
    const mergedPdf = await PDFDocument.create();

    // Copy pages from first PDF
    const pdf1Pages = await mergedPdf.copyPages(pdf1, pdf1.getPageIndices());
    pdf1Pages.forEach((page) => mergedPdf.addPage(page));

    // Copy pages from second PDF
    const pdf2Pages = await mergedPdf.copyPages(pdf2, pdf2.getPageIndices());
    pdf2Pages.forEach((page) => mergedPdf.addPage(page));

    // Save merged PDF
    const mergedBytes = await mergedPdf.save();
    fs.writeFileSync(outputPath, mergedBytes);

    //console.log(`Merged PDF saved: ${outputPath}`);
    return outputPath;
  } catch (err) {
    console.error("PDF merge failed:", err);
    throw err;
  }
};
