File size: 1,178 Bytes
02ce710
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
from pathlib import Path
from pypdf import PdfReader


def load_pdf(file_path: str) -> list[dict]:
    """Đọc PDF, trả về list các trang với text + metadata."""
    path = Path(file_path)
    reader = PdfReader(str(path))
    pages = []
    for i, page in enumerate(reader.pages):
        text = page.extract_text() or ""
        text = text.strip()
        if not text:
            continue
        pages.append({
            "text": text,
            "metadata": {
                "source": path.name,
                "page": i + 1,
                "total_pages": len(reader.pages),
            }
        })
    return pages


def load_folder(folder_path: str) -> list[dict]:
    """Đọc tất cả PDF trong thư mục."""
    folder = Path(folder_path)
    all_pages = []
    pdf_files = list(folder.glob("*.pdf"))
    print(f"Tìm thấy {len(pdf_files)} file PDF")
    for pdf_path in pdf_files:
        try:
            pages = load_pdf(str(pdf_path))
            all_pages.extend(pages)
            print(f"  Loaded: {pdf_path.name} ({len(pages)} trang)")
        except Exception as e:
            print(f"  Lỗi {pdf_path.name}: {e}")
    return all_pages