如何禁用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
相关产品推荐
相关产品推荐

