# -*- coding: utf-8 -*-
"""生成带 页眉+页码+页脚+正文 的测试书页（第 23 页），用于 VL 结构化识别验证。"""
from PIL import Image, ImageDraw, ImageFont

FONT = "/usr/share/fonts/opentype/source-han-cjk/SourceHanSansSC-Medium.otf"
W, H = 1280, 1780
img = Image.new("RGB", (W, H), "white")
d = ImageDraw.Draw(img)
fh = ImageFont.truetype(FONT, 34)
fb = ImageFont.truetype(FONT, 40)
fnum = ImageFont.truetype(FONT, 44)

# 页眉（顶部书眉）
d.text((W//2 - 280, 60), "第十二章 · 山间来信", fill=(90, 90, 90), font=fh)
d.line([(110, 130), (W-110, 130)], fill=(150, 150, 150), width=2)

# 正文
paras = [
    "他走了很久，直到渡口的灯火彻底隐没在夜色里。风从河面吹来，带着湿漉漉的凉意，把衣角掀起又放下。",
    "The letter was never sent, yet the words kept him company through the long winter nights. 他把那页信纸折好，夹进书里，再没翻开过。",
    "多年以后，有人在旧书页间发现一张泛黄的纸，字迹已经模糊，只剩一行读得清：\"替我看看江边的雪。\"",
]
import textwrap
y = 190
for p in paras:
    for line in textwrap.wrap(p, width=24):
        d.text((110, y), line, fill="black", font=fb)
        y += 66
    y += 26

# 页脚页码
d.line([(110, H-150), (W-110, H-150)], fill=(150, 150, 150), width=2)
pn = "23"
w = d.textlength(pn, font=fnum)
d.text(((W-w)//2, H-120), pn, fill=(60, 60, 60), font=fnum)

img.save("/home/zyw/Downloads/dl-hub/23-拍照OCR取字/test/sample_book_page_p23.png")
print("saved", img.size)
