質問編集履歴

1

誤字修正

2023/05/01 06:12

投稿

zy70
zy70

スコア4

test CHANGED
File without changes
test CHANGED
@@ -8,35 +8,31 @@
8
8
  テキストの文字が1ブロックになっている場合(表現が適切か分かりませんが)は読み取れますが、
9
9
  複数に分かれている場合に出力できません。(文末に補足の画像を掲載しました)
10
10
 
11
-
12
- ### 該当のソースコード
11
+ ```ここに言語を入力
13
- python
14
-
15
- ソースコード
12
+ コード
16
13
  from pdfminer.high_level import extract_text
17
14
  from pdfminer.layout import LAParams, LTTextBoxHorizontal, LTTextLineHorizontal
18
15
  from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
19
16
  from pdfminer.pdfpage import PDFPage
20
17
  from pdfminer.converter import PDFPageAggregator
21
18
 
22
- # 範囲を指定
23
- # x1, y1, x2, y2 = 100, 100, 200, 200 #座標
24
19
 
25
- # PDFファイル開く
20
+ x1, y1, x2, y2 = 100,100,200,200 #範囲指定
21
+
26
- with open('/example.pdf', 'rb') as pdf_file:
22
+ with open('/rename/image.pdf', 'rb') as pdf_file: # PDFファイルを開く
27
- # PDFMinerのリソースマネージャーを初期化
23
+
28
- resource_manager = PDFResourceManager()
24
+ resource_manager = PDFResourceManager() # PDFMinerのリソースマネージャーを初期化
29
25
  laparams = LAParams()
30
26
  device = PDFPageAggregator(resource_manager, laparams=laparams)
31
27
  interpreter = PDFPageInterpreter(resource_manager, device)
32
28
 
33
- # ページごとに処理
29
+
34
- for page in PDFPage.get_pages(pdf_file):
30
+ for page in PDFPage.get_pages(pdf_file): # ページごとに処理
35
31
  interpreter.process_page(page)
36
32
  layout = device.get_result()
37
33
 
38
- # ページ内のテキストをチェック
34
+
39
- for lt_obj in layout:
35
+ for lt_obj in layout: # ページ内のテキストをチェック
40
36
  if isinstance(lt_obj, (LTTextBoxHorizontal, LTTextLineHorizontal)):
41
37
  x, y, _, _ = lt_obj.bbox
42
38
  if x1 <= x <= x2 and y1 <= y <= y2:
@@ -44,8 +40,13 @@
44
40
  print(text)
45
41
 
46
42
 
43
+
44
+
45
+
47
46
  ### 試したこと
47
+ 検出された複数のテキストに対して、OCRさせたい両端の座標を入力すればよいのではないかと想定して試しましたが、
48
+ 結果はダメでした。(補足情報欄にイメージを掲載しました)
48
- pdf内のテキストの座標は、以下のコードを実行して取得しました。
49
+ なお、pdf内のテキストの座標は、以下のコードを実行して取得しました。
49
50
  python
50
51
 
51
52
  コード
@@ -57,10 +58,8 @@
57
58
  from pdfminer.pdfinterp import PDFPageInterpreter
58
59
  from pdfminer.layout import LAParams
59
60
  from pdfminer.converter import PDFPageAggregator
60
- ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2023-05-01/75e1984c-6597-486d-aa8f-38623fad0395.png)
61
61
  # PDFファイルのパスを指定
62
- # pdf_file_path = "/rename/simple1.pdf"
63
- pdf_file_path = "/rename/example.pdf"
62
+ pdf_file_path = "/image.pdf"
64
63
 
65
64
  # PDFファイルをバイナリ形式で開く
66
65
  with open(pdf_file_path, 'rb') as fp:
@@ -90,8 +89,4 @@
90
89
  if hasattr(element, "get_text"):
91
90
  print("Text: ", element.get_text())
92
91
  print("Position: ", element.bbox)
93
-
94
-
95
-
96
- ### 補足情報(FW/ツールのバージョンなど)
97
- ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2023-05-01/fe575e47-f472-478e-956b-12a53435808e.png)
92
+ ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2023-05-01/54c27e34-4305-406e-9f76-2a352685d139.png)