3
6

はじめに

pythonプログラムを使ってサーバー上のPDFファイルを読み取り、テキストファイルに読み込む必要性が出てきたので、調査しました。

pdfminer.sixのパッケージインストール

PDFを読み込むライブラリとして、「pdfminer.six」パッケージをインストールします。

pipコマンドを使います。

$ pip install pdfminer.six 

実装したソースコード

LAParamsオブジェクトを作成し、extract_text()のオプションを指定し、抽出結果をテキストファイルにするため、codecsライブ来を使います。

from pdfminer.layout import LAParams
from io import BytesIO
from urllib import request
from pdfminer.high_level import extract_text
import codecs

url = "https://flora-inc.co.jp/score/%E4%BB%A4%E5%92%8C5%E5%B9%B4%E5%BA%A6%E3%83%95%E3%83%AD%E3%83%BC%E3%83%A9IT%E9%83%A8%E9%96%80%E6%94%AF%E6%8F%B4%E5%AE%9F%E7%B8%BE.pdf"

result_file = "flora_report.txt"

laparams = LAParams(
    line_overlap=0.5,
    char_margin=2,
    line_margin=0.5,
    word_margin=0.1,
    boxes_flow=0.5,
    detect_vertical=False,
    all_texts=True
)

with request.urlopen(url) as res:
    f = BytesIO(res.read())
    for i in range(0,1):
      text = extract_text(f, laparams=laparams, page_numbers=[i])
      print(text,file=codecs.open(result_file,'a','utf-8'))

出力した結果

PDFファイルをテキストファイルに出力した結果です。

【令和 5 年度フローラ IT 部門支援実績報告】 

1. 研修における支援内容 

研修生として本年度は5名の方が入社し研修を受けていた、支援として研修専属での指導係

を配置し、相談や質問などをしやすい環境を確立している。 

提携先企業様から提供されているカリキュラムを基に、研修を進めていくという流れになっ

ている。 

分からないをそのままにせず、分かるまできちんと教えられる様な体制作りを職員・指導係・

受講者での連携をし、解決するようにしている。 

今年度の内6年度までに3名が研修を終えて業務研修に移行していて、その内の一人は実務

チームとして活躍している。 

2. 業務研修について 

業務研修は、実業務にも対応できる様に設立しました、支援としては業務研修でのチーム作

業にて、一つの課題に対して自分達で作り考える力、複数言語に対応できる力、実業務に特

化した作業など、戦力になるように支援しています。 

今までには無かった実務レベルの研修を受けてもらい、業務に移行できる様に考えられて

います。 

3. 実業務チーム支援内容 

実業務チームは、弊社提携先企業様からの受諾案件や共同開発案件など、報酬の発生する業

務を受け持っている。 

提携先企業からの発注を受けチーム全体で会議をし、チーム参加メンバーで結論を決め出来

るのか出来ないのかを判断し、自主性を最優先に決断をしながら進めていく事にしている。 

やると決まると職員と提携先企業との連携にて協議し、支援内容などを提携先企業と決め

ていく。 

実業務にかかる実務支援は提携先企業の側から、環境を提供して頂き相談など連携しやす

い環境が構築されている。 

4.IT 部門業務実績 

Web ホームページ作成案件:4 件 

システム開発案件:21 件 

最後に

PDFファイルから有用なデータを得て、データ分析に活用しようと思います。

3
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
6