from pathlib import Path
import shutil,json,hashlib,zipfile
from PIL import Image
from reportlab.pdfgen import canvas
from pypdf import PdfReader,PdfWriter

HERE=Path(__file__).resolve().parent;ROOT=HERE.parents[6]
BASE=ROOT/'oss/local-deliverables/2026-09-23-AI智慧健康站双方案'
A=BASE/'01-GPT科技产品版';B=BASE/'02-NotebookLM信息图校订版'
B.mkdir(exist_ok=True)
records=[]
for label,stem in [('产品介绍一页纸','产品介绍'),('渠道产品介绍一页纸','渠道合作')]:
 src=BASE/'scheme-b-corrected'/f'NotebookLM-{stem}-科技产品版-v3-GPT校订.png'
 if not src.exists():raise FileNotFoundError(src)
 dst=B/f'{label}_NotebookLM校订版.png';shutil.copy2(src,dst)
 iw,ih=Image.open(dst).size
 w,h=595.276,841.89;scale=min(w/iw,h/ih);dw,dh=iw*scale,ih*scale
 pdf=dst.with_suffix('.pdf');c=canvas.Canvas(str(pdf),pagesize=(w,h));c.setTitle(label+' NotebookLM生成 GPT局部校订');c.setAuthor('康比特')
 c.drawImage(str(dst),(w-dw)/2,(h-dh)/2,width=dw,height=dh);c.showPage();c.save()
 assert len(PdfReader(pdf).pages)==1
 records.append({'file':str(dst.relative_to(BASE)),'pixels':[iw,ih],'pipeline':'NotebookLM HTTP infographic + GPT local factual correction','pdf_fit':'A4 proportional, not stretched','sha256':hashlib.sha256(dst.read_bytes()).hexdigest()})
for path,names,outname in [(A/'02-图文版',['产品介绍一页纸_品牌发布版.pdf','渠道产品介绍一页纸_品牌发布版.pdf'],'方案一_GPT科技产品版_两页合辑.pdf'),(B,['产品介绍一页纸_NotebookLM校订版.pdf','渠道产品介绍一页纸_NotebookLM校订版.pdf'],'方案二_NotebookLM信息图_两页合辑.pdf')]:
 writer=PdfWriter()
 for name in names:
  r=PdfReader(path/name);assert len(r.pages)==1;writer.add_page(r.pages[0])
 dest=A/outname if path.parent==A else B/outname
 writer.write(dest)
for f in (A/'qa').glob('text-*/*.pdf'):shutil.copy2(f,A/'01-纯文字版'/f.name)
guide='''当前交付：健康体测一体机 + AI运动营养师

01-GPT科技产品版：GPT原生生成设备/手机/AI效果图，微软雅黑矢量排版，含两份图文PNG/PDF与两份可编辑Word、TXT和纯文字PDF。所有最终PDF单份各1页。
02-NotebookLM信息图校订版：相关资料经本机HTTP/RPC上传NotebookLM后生成，再由GPT局部纠正错误文字、数据入口、设备外形及界面乱码。原始生成版与回执另行保留，当前包不包含有误原图。原图937×1678，PDF按比例放入A4，未拉伸。栅格文字可按微软雅黑风格生成，但不能证明真实字体嵌入。

两套都已将产品作为主角，统一“健康体测一体机”名称。设备为基于实物参考的效果/概念示意，AI界面为功能示意；人物旧版不在交付包。
NotebookLM入口：https://notebooklm.google.com/notebook/85860bfb-a76b-4844-bc28-390fa2e9a4fb
入口需要用户自己的NotebookLM权限，未设置公开分享。

方案A适合品牌产品发布与招商首屏；方案B用于更详细的信息说明和比较。具体设备、功能、价格、权益以实际确认清单和协议为准。
'''
(BASE/'交付说明.txt').write_text(guide)
(BASE/'final-manifest.json').write_text(json.dumps(records,ensure_ascii=False,indent=2))
archive=BASE/'健康体测一体机_AI运动营养师_双方案交付.zip'
with zipfile.ZipFile(archive,'w',zipfile.ZIP_DEFLATED) as z:
 for folder in [A/'01-纯文字版',A/'02-图文版',B]:
  for f in sorted(folder.iterdir()):
   if f.is_file():z.write(f,f.relative_to(BASE))
 z.write(A/'方案一_GPT科技产品版_两页合辑.pdf','01-GPT科技产品版/方案一_GPT科技产品版_两页合辑.pdf')
 z.write(BASE/'交付说明.txt','交付说明.txt')
with zipfile.ZipFile(archive) as z:assert z.testzip() is None
print(archive)
