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

如何移除PDF文件中的隐藏斜向文本区域?

如何移除PDF中的隐藏文本区域

问题背景

测试Python文本拆分逻辑时,发现一份单页PDF存在异常:

  • 文档包含不可见的额外文本,搜索“55074”能定位到5个匹配的隐藏区域(显示为黄色高亮)。
  • 这些隐藏区域可通过鼠标斜向拖动选中(蓝色区域为选中范围)。

可行的解决方法

1. Python脚本自动清理(推荐)

用PyMuPDF(fitz)库遍历PDF页面,过滤重复或位置异常的文本块,重新生成干净的PDF:

import fitz

def remove_hidden_text(input_path, output_path):
    doc = fitz.open(input_path)
    for page in doc:
        # 获取所有带坐标信息的文本块
        text_blocks = page.get_text("blocks")
        cleaned_blocks = []
        existing_text = set()
        
        for block in text_blocks:
            x0, y0, x1, y1, content, _, _ = block
            # 过滤重复文本,也可根据坐标范围筛选正常显示的文本
            stripped_content = content.strip()
            if stripped_content and stripped_content not in existing_text:
                existing_text.add(stripped_content)
                cleaned_blocks.append(block)
        
        # 清空原页面内容,重新添加清理后的文本
        page.delete_text()
        for block in cleaned_blocks:
            x0, y0, _, _, content, _, _ = block
            # 字体大小可根据原文档调整,确保显示一致
            page.insert_text((x0, y0), content, fontsize=10)
    
    doc.save(output_path)
    doc.close()

# 调用示例
remove_hidden_text("原文件.pdf", "清理后文件.pdf")

2. 专业PDF工具手动处理

  • Adobe Acrobat Pro:打开PDF进入「编辑PDF」模式,全选所有文本删除,仅保留可见的正常文本重新输入;也可使用「预检」工具,选择“删除隐藏文本”的预设完成一键清理。
  • Foxit PhantomPDF:在「编辑」菜单中找到「删除隐藏文本」功能直接处理。

3. 图像转换法(适合文本量少的场景)

把PDF页面导出为高清PNG/JPG图像,再将图像转回PDF。这种方法会彻底移除所有文本层,仅保留图像,缺点是生成的PDF无法再编辑文本。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 12:47:49