You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否将AI生成的图片图注回嵌入PDF?求技术实现方案

如何将AI生成的图注添加到PDF对应图片位置

完全可以实现将AI生成的图注放回PDF中对应图片的位置,核心思路是先定位图片在PDF页面中的坐标,再在指定位置插入文本形式的图注。以下是具体的实现方案:

推荐使用的Python库

  • PyMuPDF(fitz):功能全面,既能提取PDF中图片的精确坐标,又能直接在页面上插入文本,一站式完成定位和编辑操作,是最推荐的工具。
  • pdfplumber:擅长提取PDF页面元素的位置信息,可配合其他PDF编辑库使用,适合需要更精细元素分析的场景。
  • ReportLab:主要用于生成PDF内容,若需要将原PDF内容与新图注合并,可结合定位结果生成新的PDF页面。

基于PyMuPDF的代码实现示例

下面的代码可以完成从定位图片到插入图注的完整流程,假设你已经提前按页面和图片顺序准备好对应的图注:

import fitz  # 导入PyMuPDF库

# 打开原始PDF文件
pdf_doc = fitz.open("你的原始文件.pdf")

# 示例:按页码和图片顺序存储的图注,需替换为你实际生成的内容
# 结构为 {页码: [对应页面的图注列表]},页码从0开始计数
image_notes = {
    0: ["图1:城市天际线夜景,展示了高楼与灯光", "图2:手绘的植物解剖图"],
    1: ["图3:季度用户增长折线图"]
}

# 遍历PDF的每一页
for page_index in range(len(pdf_doc)):
    current_page = pdf_doc[page_index]
    # 获取当前页的所有图片信息
    page_images = current_page.get_images(full=True)
    
    # 遍历当前页的每张图片,匹配对应图注
    for img_index, img_info in enumerate(page_images):
        # 检查当前页是否有对应图注,且图片索引在图注列表范围内
        if page_index in image_notes and img_index < len(image_notes[page_index]):
            target_note = image_notes[page_index][img_index]
            # 获取图片在页面上的边界框(x0:左, y0:上, x1:右, y1:下)
            img_rect = current_page.get_image_rects(img_info[0])[0]
            
            # 计算图注的位置:图片下方居中,与图片底部保持20单位的间距
            note_center_x = (img_rect.x0 + img_rect.x1) / 2
            note_y = img_rect.y1 + 20
            # 设置图注的文本框范围,确保文本居中显示
            note_rect = fitz.Rect(
                note_center_x - 150,  # 文本框左边界
                note_y - 12,          # 文本框上边界
                note_center_x + 150,  # 文本框右边界
                note_y + 12           # 文本框下边界
            )
            
            # 在页面插入图注,设置居中对齐、字体大小和字体
            current_page.insert_textbox(
                note_rect,
                target_note,
                align=fitz.TEXT_ALIGN_CENTER,
                fontsize=10,
                fontname="helv"
            )

# 保存添加图注后的PDF文件
pdf_doc.save("添加图注后的文件.pdf")
pdf_doc.close()

关键注意事项

  • 坐标系统:PDF的坐标原点在页面左下角,y值越大位置越靠下,调整图注位置时需注意这一点。
  • 图注样式:可通过fontsize、fontname、text_color等参数调整图注的字体、大小和颜色,避免与原PDF内容冲突。
  • 顺序匹配:确保图注列表的顺序与页面中图片的顺序完全对应,防止图注错位。
  • 内容覆盖:若图注位置与原PDF文本重叠,可调整note_y的偏移量,将图注移至更下方或其他合适位置。

内容的提问来源于stack exchange,提问作者Clara

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 23:35:27