<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);

require_once($_SERVER['DOCUMENT_ROOT'] . "/jubo/tcpdf/tcpdf.php");
include('connect_pdo.php'); // 반드시 echo 없는 파일로 수정!

// PDF 생성 전 절대 출력 금지!
ob_start(); // 출력 버퍼링 시작 (불필요한 출력 방지)

// TCPDF 객체 생성
$pdf = new TCPDF();
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor('그누보드');
$pdf->SetTitle('PDF 다운로드');
$pdf->SetSubject('그누보드 게시글 PDF 변환');
$pdf->SetKeywords('그누보드, PDF, 다운로드');

// 한글 폰트 설정 (NanumGothic 폰트 사용)
$pdf->SetFont('nanumgothic', '', 14);

$pdf->SetMargins(10, 10, 10);
$pdf->AddPage();

$post_id = isset($_GET['wr_id']) ? intval($_GET['wr_id']) : 0;

if ($post_id > 0) {
    $sql = "SELECT wr_subject, wr_content FROM g5_write_basic_original WHERE wr_id = :wr_id";
    $stmt = $pdo->prepare($sql);
    $stmt->bindParam(':wr_id', $post_id, PDO::PARAM_INT);
    $stmt->execute();
    $row = $stmt->fetch(PDO::FETCH_ASSOC);

    if ($row) {
        // 제목 출력
        $pdf->Cell(0, 10, $row['wr_subject'], 0, 1, 'C');

        // 본문 출력 (HTML 적용 가능)
        $pdf->SetFont('nanumgothic', '', 12);
        $pdf->writeHTML(nl2br($row['wr_content']), true, false, true, false, '');

        // 줄바꿈 추가
        $pdf->Ln(10);

        // 이미지 출력 (g5_board_file 테이블에서 가져오기)
        $sql_img = "SELECT bf_file FROM g5_board_file WHERE bo_table = 'basic_original' AND wr_id = :wr_id";
        $stmt_img = $pdo->prepare($sql_img);
        $stmt_img->bindParam(':wr_id', $post_id, PDO::PARAM_INT);
        $stmt_img->execute();

        $image_width = 150; // PDF에 출력할 이미지 너비 (mm 단위)
        $image_height = 90; // PDF에 출력할 이미지 높이 (mm 단위)
        $margin = 10; // 이미지 간격 (mm)
        $y_position = $pdf->GetY(); // 현재 Y 좌표 저장

        while ($img = $stmt_img->fetch(PDO::FETCH_ASSOC)) {
            $image_path = $_SERVER['DOCUMENT_ROOT'] . "/data/file/basic_original/" . $img['bf_file'];

            if (file_exists($image_path)) {
                // 현재 Y 좌표에서 이미지 출력
                $pdf->Image($image_path, 30, $y_position, $image_width, $image_height, '', '', 'T', false, 300, '', false, false, 0, false, false, false);

                // 다음 이미지 Y 좌표 조정 (현재 Y + 이미지 높이 + 간격)
                $y_position += $image_height + $margin;
            } else {
                $pdf->Cell(0, 10, "이미지 파일을 찾을 수 없습니다: " . $img['bf_file'], 0, 1, 'C');
            }
        }
    } else {
        $pdf->Cell(0, 10, '게시글을 찾을 수 없습니다.', 0, 1, 'C');
    }
} else {
    $pdf->Cell(0, 10, '잘못된 접근입니다.', 0, 1, 'C');
}

// 출력 버퍼 정리 후 PDF 다운로드
ob_end_clean();
$pdf->Output('download.pdf', 'D');
exit;
?>
