如何使用python从pdf中提取粗体文本?

Shr*_*404 6 python nlp python-re

下面的列表提供了不应单独计费的项目和服务的示例。请注意,该列表并未包含全部内容。

\n

1. 手术室和服务\xe2\x80\x93 包括手术室、主要和次要手术室、治疗室、\n内窥镜实验室、心导管实验室、X 射线。

\n

2. 设施基本费用- 肺科和心脏病科手术室。医院\xe2\x80\x99s\n手术室和服务的费用应包括上面列出的全部护理人员服务、用品和设备

\n

我想要的输出如下:

\n
    \n
  1. 手术室和服务
  2. \n
  3. 设施基本费用
  4. \n
\n

第一个句子也是粗体,但我们需要省略该句子,我们只需要提取那些用数字表示的文本

\n

小智 6

您可以使用以下代码来完成此操作:

import pdfplumber
with pdfplumber.open('test.pdf') as pdf: 
    text = pdf.pages[0]
    clean_text = text.filter(lambda obj: obj["object_type"] == "char" and "Bold" in obj["fontname"])
    print(clean_text.extract_text())
Run Code Online (Sandbox Code Playgroud)

它使用pdfplumber库,因此有关更多信息,您可以查看它们的文档


小智 1

使用此代码:

import pdfplumber
import re
demo = []
with pdfplumber.open('HCSC IL Inpatient_Outpatient Unbundling Policy- Facility.pdf') as pdf: 
    for i in range(0, 50):
        try:
            text = pdf.pages[i]  
            clean_text = text.filter(lambda obj: obj["object_type"] == "char" and "Bold" in obj["fontname"])
            demo.append(str(re.findall(r'(\d+\.\s.*\n?)+', clean_text.extract_text())).replace('[]', ' '))
        except IndexError:
            print("")
            break
Run Code Online (Sandbox Code Playgroud)