如何让pdfplumber将页面右垂直边缘识别为表格竖线?
解决pdfplumber识别裁剪后PDF表格右侧竖线的问题
当PDF右边缘被裁剪导致表格最右侧竖线丢失时,可以通过手动指定页面右边缘为表格竖线的方式让pdfplumber正确识别表格,具体配置如下:
- 先获取目标页面的宽度(即右边缘的横坐标)
- 在
table_settings中通过explicit_vertical_lines参数将页面宽度添加为竖线位置 - 配合调整
snap_tolerance参数,让单元格边缘可以轻微偏移时也能对齐到这条手动添加的竖线
示例代码:
import pdfplumber with pdfplumber.open("被裁剪的文件.pdf") as pdf: # 遍历所有页面(这里以第一页为例,可根据需求调整) for page in pdf.pages: # 获取页面右边缘的横坐标 right_edge = page.width # 配置表格识别参数 table_config = { "explicit_vertical_lines": [right_edge], "snap_tolerance": 3, # 根据实际裁剪情况调整,单位为像素 # 结合自动识别的竖线和手动添加的边缘线 "vertical_strategy": "lines+explicit", "horizontal_strategy": "lines" } # 提取表格 extracted_table = page.extract_table(table_settings=table_config) # 输出或处理表格数据 if extracted_table: for row in extracted_table: print(row)
参数说明:
explicit_vertical_lines:手动指定表格竖线的横坐标列表,这里传入页面宽度值,强制让pdfplumber将页面右边缘视为表格竖线snap_tolerance:控制单元格边缘与竖线的允许偏移量,数值越大,对边缘对齐的容错度越高vertical_strategy: 设置为lines+explicit时,pdfplumber会同时使用自动识别的竖线和手动添加的竖线,适合还有其他完整竖线的表格;如果只有右侧边缘缺失,也可设为explicit仅使用手动指定的竖线
内容的提问来源于stack exchange,提问作者banderlog013
相关产品推荐
相关产品推荐

