使用Python的borb库,如何在保存PDF前隐藏OCR层?
如何在borb生成的PDF中隐藏OCR层
要让扫描版PDF的OCR层仅保留可搜索/选中功能但不在视觉上覆盖原图,核心是让OCR生成的文本不可见但仍存在于PDF结构中,可以通过以下两种简洁方式实现:
设置文本完全透明
在创建OCR文本的TextRun或Paragraph时,添加opacity=0参数,这样文本不会被渲染出来,但PDF的文本结构依然完整:from borb.pdf.canvas.layout.text.paragraph import Paragraph from borb.pdf.canvas.layout.text.text_run import TextRun # 创建透明文本段落 invisible_para = Paragraph("OCR识别内容", opacity=0) # 创建透明文本行 invisible_text = TextRun("OCR识别内容", opacity=0)使用不可见文本渲染模式
利用PDF原生的文本渲染模式,将OCR文本设置为RenderMode.INVISIBLE,同样能实现视觉隐藏但保留文本结构的效果:from borb.pdf.canvas.layout.text.text_run import TextRun from borb.pdf.canvas.font.simple_font.font_type_1 import StandardType1Font from borb.pdf.canvas.font.font import Font from borb.pdf.canvas.rendering.render_mode import RenderMode text_run = TextRun( "OCR识别内容", font=StandardType1Font(Font.COURIER), font_size=12, render_mode=RenderMode.INVISIBLE )
如果是用教程中的批量处理逻辑,只需修改OCR生成文本的代码部分,在添加文本到PDF页面时自动应用上述任一设置即可。
内容的提问来源于stack exchange,提问作者leabum
相关产品推荐
相关产品推荐

