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

如何禁用pdf2htmlex将文本嵌入图片的行为?

问题:pdf2htmlex解析PDF时如何避免文本被包含进图片?

我在用pdf2htmlex解析试卷PDF时遇到一个问题:它会把文本作为图片的一部分保存,而不是让图片只保留图形内容。

现象说明

  • pdf2htmlex并非无法识别PDF中的文本,检查解析后的内容发现,div标签里确实包含了PDF的文本,但这些文本是透明的。
  • 示例图:
    示例:文本被包含在图片中的解析结果

排查过程:字体对比

我怀疑是字体差异导致的问题,用fitz编写了字体提取和对比的代码,对比了两份PDF:

  • eq8.pdf:存在问题的PDF(文本被包含进图片)
  • example.pdf:解析正常的PDF(图片仅含图形,无文本)

字体提取代码

import fitz

def extract_fonts_from_pdf(pdf_path):
    font_families = set()
    
    doc = fitz.open(pdf_path)
    for page_num in range(len(doc)):
        page = doc.load_page(page_num)

        for text_instance in page.get_text("dict")["blocks"]:
            for line in text_instance["lines"]:
                for span in line["spans"]:
                    font_family = span["font"]
                    if font_family:
                        font_families.add(font_family)

    doc.close()
    return font_families

def compare_fonts(pdf_path1, pdf_path2):
    fonts1 = extract_fonts_from_pdf(pdf_path1)
    fonts2 = extract_fonts_from_pdf(pdf_path2)

    print("Fonts in PDF 1:")
    print(fonts1)
    print("\nFonts in PDF 2:")
    print(fonts2)

# Example usage
pdf_path1 = "eq8.pdf"
pdf_path2 = "example.pdf"
compare_fonts(pdf_path1, pdf_path2)

运行输出

Fonts in PDF 1:
{'Arial', 'Calibri', 'TimesNRGreekMT', 'Arial,Bold', 'Helvetica-Bold', 'Arial,Italic', 'Helvetica', 'Symbol', 'Cambria,Bold', 'Helvetica-Oblique'}

Fonts in PDF 2:
{'Arial', 'Calibri', 'Arial,Bold', 'Helvetica-Bold', 'Arial,Italic', 'Helvetica', 'Cambria,Bold', 'Helvetica-Oblique'}

提问

是否存在某种选项可以禁用这种将文本包含进图片文件的行为,让图片仅保留图形内容?这一问题已经干扰了我的图片解析算法。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 23:14:57