82 lines
2.9 KiB
Python
82 lines
2.9 KiB
Python
from reportlab.lib.pagesizes import letter
|
||
from reportlab.pdfgen import canvas
|
||
from reportlab.pdfbase import pdfmetrics
|
||
from reportlab.pdfbase.cidfonts import UnicodeCIDFont
|
||
|
||
# Register a Chinese-capable font
|
||
pdfmetrics.registerFont(UnicodeCIDFont('STSong-Light'))
|
||
|
||
# File path
|
||
file_path = "E:/island_maids_analysis_v2.pdf"
|
||
|
||
# Create PDF
|
||
c = canvas.Canvas(file_path, pagesize=letter)
|
||
width, height = letter
|
||
|
||
# Title
|
||
c.setFont("STSong-Light", 18)
|
||
c.drawString(50, height - 50, "Island Maids 网站功能与后端需求分析")
|
||
|
||
c.setFont("STSong-Light", 12)
|
||
y = height - 80
|
||
|
||
# Content structured manually
|
||
sections = [
|
||
("前端功能", [
|
||
"1. 服务分类与详细介绍",
|
||
" 家政服务分多国籍外佣(印尼、缅甸、菲律宾、米佐拉姆)、",
|
||
" 坐月嫂、培训课程、送返工服务、宿舍与住宿、续签与保险等,",
|
||
" 每项均有独立页面展示申请流程。",
|
||
"2. 在线筛选与预约面试(Search Maids)",
|
||
" 浏览候选人简历,支持筛选、收藏、一键预约面试。",
|
||
"3. 资源中心",
|
||
" • 新闻与动态:行业资讯、政策更新",
|
||
" • 常见问题:雇主及外佣FAQ解答",
|
||
"4. 公司介绍与信任背书",
|
||
" • 关于我们:发展历程、匹配案例统计",
|
||
" • 客户评价与画廊:好评与服务现场照片",
|
||
"5. 人才招募(Join Us)",
|
||
" 外佣及管理岗位在线应聘,填写并提交简历",
|
||
"6. 多渠道联系与咨询",
|
||
" 分行电话、在线表单、WhatsApp、反馈、社交媒体链接",
|
||
"7. 其他辅助功能",
|
||
" 网点地图、营业时间提醒、站点地图",
|
||
]),
|
||
("后端需求", [
|
||
"1. 数据存储与查询",
|
||
" 候选简历、客户档案、面试记录等存数据库,支持筛选与分页",
|
||
"2. 表单提交与流程管理",
|
||
" 接收并验证表单,存储后推送邮件/短信,支持多步流程",
|
||
"3. 用户与权限",
|
||
" 注册登录、JWT/Session验证,管理员CMS权限控制",
|
||
"4. 内容管理系统",
|
||
" 后台管理新闻、FAQ、画廊等,实时更新前端",
|
||
"5. 第三方服务对接",
|
||
" 邮件、SMS、WhatsApp、地图API服务调用",
|
||
"6. 安全与性能",
|
||
" 输入校验、防注入、速率限流、WAF,Redis缓存加速",
|
||
]),
|
||
]
|
||
|
||
for title, lines in sections:
|
||
# Section title
|
||
if y < 100:
|
||
c.showPage()
|
||
y = height - 50
|
||
c.setFont("STSong-Light", 12)
|
||
c.setFont("STSong-Light", 14)
|
||
c.drawString(50, y, title)
|
||
y -= 20
|
||
c.setFont("STSong-Light", 12)
|
||
for line in lines:
|
||
if y < 50:
|
||
c.showPage()
|
||
y = height - 50
|
||
c.setFont("STSong-Light", 12)
|
||
c.drawString(60, y, line)
|
||
y -= 16
|
||
y -= 10
|
||
|
||
c.save()
|
||
file_path
|