name: ascii-preview-generate description: 使用AI创建PDF页面布局的ASCII文本预览。将视觉和提取的数据转换为结构化ASCII表示,用于HTML生成。
ASCII预览生成技能
目的
此技能使用AI创建有意义的ASCII文本表示的PDF页面布局。AI:
- 分析PDF页面图像和提取的文本数据
- 创建显示页面组织的结构化ASCII预览
- 可视化表示标题层次结构、段落、列表和表格
- 为下游HTML生成提供清晰的结构上下文
ASCII预览作为页面布局的结构化表示,使下游的AI-HTML生成器能够理解视觉布局和内容结构。
操作步骤
-
加载输入文件
- 读取
02_page_XX.png(视觉参考) - 读取
01_rich_extraction.json(带元数据的文本片段) - 验证所有必需字段是否存在
- 读取
-
调用AI进行分析和表示
- 将PNG图像发送给Claude(视觉参考)
- 包含提取的文本数据(JSON)
- 请求ASCII布局表示
- AI确定结构和关系
-
AI生成ASCII预览
- AI从提取数据中分析标题层次结构
- AI识别段落及其关系
- AI用适当的格式表示列表
- AI显示表格布局(如果存在)
- AI使用ASCII字符创建视觉表示
-
验证ASCII输出
- 验证输出是可读文本
- 检查是否所有内容元素都已表示
- 确认结构清晰且逻辑合理
-
保存到持久文件
- 保存到:
output/chapter_XX/page_artifacts/page_YY/03_page_XX_ascii.txt - 包含元数据(页码、章节、时间戳)
- 保存到:
输入参数
rich_extraction_file: <str> - 01_rich_extraction.json的路径
page_png: <str> - 02_page_XX.png的路径(可选,用于视觉验证)
output_file: <str> - 保存ASCII预览的路径
book_page: <int> - 书籍页码(用于显示)
chapter: <int> - 章节号(用于显示)
输出格式
ASCII预览结构
ASCII预览使用以下结构:
================================================================================
PAGE XX ASCII LAYOUT PREVIEW
================================================================================
Book Page: YY | Chapter: Z | PDF Index: XX | Dimensions: 612x792px
--------------------------------------------------------------------------------
[PAGE CONTENT WITH ASCII ART AND ANNOTATIONS]
STRUCTURE SUMMARY:
[Element counts and types]
================================================================================
示例输出
================================================================================
PAGE 16 ASCII LAYOUT PREVIEW
================================================================================
Book Page: 17 | Chapter: 2 | PDF Index: 16 | Dimensions: 612x792px
--------------------------------------------------------------------------------
┌─────────────────────────────────────────────────────────────────────────┐
│ │
│ [H1 Heading - 27pt Bold] │
│ ████████████████████████████████ │
│ █ Rights in Real Estate █ │
│ ████████████████████████████████ │
│ │
│ ───────────────────────────────────────────────────────────────── │
│ [Divider] │
│ │
│ [H2 Section Heading - 11pt Bold All-Caps] │
│ REAL PROPERTY RIGHTS │
│ │
│ [Paragraph 1 - 11pt Regular] │
│ Real property consists of physical land and the legal rights │
│ associated with ownership. These rights form what is commonly │
│ referred to as the "bundle of rights." │
│ │
│ [H4 Subsection - 11pt Bold] │
│ Physical characteristics. │
│ │
│ [Paragraph 2 - 11pt Regular] │
│ Land has unique physical characteristics that distinguish it from │
│ other types of assets. The most important characteristics include: │
│ │
│ [Bullet List - 3 items] │
│ ▶ Immobility - Land cannot be moved from one location to │
│ another. This fact has significant legal and economic │
│ implications. │
│ ▶ Indestructibility - Land is permanent and cannot be │
│ destroyed. Although structures on land can be destroyed, │
│ the land itself endures. │
│ ▶ Uniqueness - Each parcel of land is unique due to its │
│ location. "Not two parcels of land are exactly alike due to │
│ their geographic location." │
│ │
│ [H4 Subsection - 11pt Bold] │
│ Interdependence. │
│ │
│ [Paragraph 3 - 11pt Regular] │
│ All land exists in relation to other land. Therefore, the value │
│ of land is dependent on the land around it... │
│ │
└─────────────────────────────────────────────────────────────────────────┘
STRUCTURE SUMMARY:
─────────────────
Page Type: Chapter Continuation
Total Elements: 12
Headings (3):
• H1: 1 instance (27pt, bold) - "Rights in Real Estate"
• H2: 1 instance (11pt, bold, all-caps) - "REAL PROPERTY RIGHTS"
• H4: 2 instances (11pt, bold) - "Physical characteristics", "Interdependence"
Paragraphs (3):
• Body text: 3 paragraphs total
• Average paragraph length: ~45 words
• Text flow: Top to bottom, left to right
Lists (1):
• Bullet list with 3 items
• Indentation: 2em from left margin
• Separator: "▶" character
Tables: 0
Images: 0
Font Summary:
• 27pt: 1 instance (heading)
• 11pt: 7 instances (body, subsections, lists)
• Total unique fonts: 2 (Arial-Bold, Times-Regular)
Confidence Assessment:
• Heading hierarchy: 100% confident
• Element types: 95% confident
• Content flow: 90% confident
• (Lower confidence = ambiguous or unusual formatting)
================================================================================
AI提示模板
发送给Claude以生成ASCII预览的提示:
您正在创建PDF页面的ASCII文本布局预览。
视觉参考(PDF页面):
[PNG图像附件]
提取的文本数据:
[JSON附件]
任务:
生成此页面布局和结构的ASCII文本表示。
要求:
1. ASCII格式:
- 使用框线字符以获得视觉清晰度(┌─┐│└┘)
- 显示页面边界
- 使用间距表示实际布局
2. 元素表示:
- 标题:在ASCII中显示,用[H1]、[H2]、[H3]、[H4]标记
- 段落:显示第一行,指示续行
- 列表:使用▶或•字符,保持结构
- 表格:显示列对齐和结构
- 间距:表示元素之间的实际间隙
3. 注释:
- 标记每个元素类型[标题]、[段落]、[列表]等
- 显示字体大小上下文(11pt、27pt等)
- 注意文本样式(粗体、全大写等)
4. 摘要统计:
- 按级别统计标题数量(h1、h2、h3、h4)
- 统计段落数量
- 统计列表和项目数量
- 注意任何表格或图像
5. 可读性:
- 保持行数少于80个字符
- 使用清晰的视觉分隔
- 使结构一目了然
输出:
================================================================================ PAGE XX ASCII LAYOUT PREVIEW
Book Page: YY | Chapter: Z | PDF Index: XX
[ASCII representation with visual structure]
STRUCTURE SUMMARY: [Element counts and types]
验证:
- ASCII必须是可读文本
- 所有主要内容元素必须被表示
- 结构必须清晰且逻辑合理
- 元素总数必须与数据匹配
AI生成过程
-
加载输入
02_page_XX.png- 视觉参考01_rich_extraction.json- 带元数据的文本片段
-
调用Claude API
- 将图像作为多模态输入发送
- 在提示中包含提取的数据
- 请求ASCII布局预览
-
提取和验证输出
- 从响应中解析ASCII
- 验证可读性
- 检查元素表示
-
保存到文件
- 写入
output/chapter_XX/page_artifacts/page_YY/03_page_XX_ascii.txt
- 写入
质量检查
在声明ASCII预览完成之前:
-
文件输出
- [ ] 输出文件已创建且可读
- [ ] 文件是有效文本(UTF-8编码)
- [ ] 文件大小有意义(> 500字节)
-
内容表示
- [ ] 所有主要页面元素都已表示
- [ ] 标题层次结构显示清晰
- [ ] 段落已指示且可读
- [ ] 列表格式正确,带有项目符号/标记
- [ ] 表格(如果存在)显示对齐方式
-
相对于源数据的准确性
- [ ] 结构与rich_extraction.json匹配
- [ ] 元素数量合理
- [ ] 文本内容准确(无更改)
- [ ] 布局代表视觉(PNG)外观
-
可读性和格式
- [ ] ASCII艺术清晰干净
- [ ] 行长度合理(< 100字符)
- [ ] 框线字符正确渲染
- [ ] 注释清晰且有用
- [ ] 摘要部分存在且准确
输出元数据
{
"preview_file": "03_page_16_ascii.txt",
"page": 16,
"book_page": 17,
"chapter": 2,
"generated_at": "2025-11-08T14:31:00Z",
"source_file": "01_rich_extraction.json",
"elements_detected": {
"headings": 4,
"paragraphs": 3,
"lists": 1,
"tables": 0,
"images": 0
},
"confidence_scores": {
"overall": 0.93,
"heading_hierarchy": 1.0,
"element_types": 0.95,
"content_flow": 0.90
}
}
在下游处理中的使用
ASCII预览被**技能3(ai-html-generate)**用作三个输入之一:
02_page_XX.png- 视觉参考(像素数据)01_rich_extraction.json- 带元数据的解析文本03_page_XX_ascii.txt- 结构表示 ← 此技能创建
这三个输入共同为AI提供了准确HTML生成的完整上下文。
错误处理
如果PNG图像加载失败:
- 回退到使用rich_extraction.json的纯文本分析
- AI仍然生成ASCII,但没有视觉参考
- 在元数据中注明:“图像不可用”
- 继续(文本数据足以用于结构)
如果rich_extraction.json无效:
- 使用PNG图像和AI视觉分析
- 尝试仅从视觉生成ASCII
- 记录关于缺少文本数据的警告
- 根据AI的最佳判断继续
如果AI响应不是有效文本:
- 验证编码和换行符
- 必要时重试请求
- 如果重复失败则升级处理
如果ASCII结构似乎不完整:
- AI可能由于图像质量而遗漏了元素
- 下游HTML生成具有用于验证的视觉参考
- 质量门将捕获输出是否不足
成功标准
✓ ASCII预览文件成功创建 ✓ 文件包含结构化格式的所有页面元素 ✓ 标题层次结构清晰且逻辑合理 ✓ 包含所有文本内容且可读 ✓ 摘要统计准确 ✓ 文件格式良好且明确 ✓ 准备好用于具有完整上下文的AI HTML生成
后续步骤
ASCII预览完成后:
- 技能3(ai-html-generate)使用此+ PNG + 提取数据生成HTML
- AI拥有最大上下文:视觉(PNG)+ 文本(提取)+ 结构(ASCII)
- 结果是准确、语义正确的HTML
故障排除
ASCII预览不完整:检查源rich_extraction.json是否包含所有文本片段 标题层次结构看起来错误:验证提取数据中的字体大小 列表未检测到:检查项目符号字符编码问题 间距不正确:确保坐标系与PDF匹配(左上角原点)
设计说明
- 此技能是AI驱动的(概率生成)
- 输出是人类可读的(用于调试和验证)
- 输出是机器可解析的(用于下游处理)
- 输入是多模态的(视觉图像 + 结构化文本数据)
- AI理解上下文以创建有意义的布局预览
- 视觉和文本表示之间的关键桥梁
- 使下游HTML生成具有完整上下文