PDFファイルは、文書を共有する際に便利なフォーマットですが、編集や検索が難しいというデメリットもあります。そこで、今回はPythonのライブラリ「PyPDF」を使って、PDFファイルからテキストを自動的に取得する方法を紹介します。
今回はトヨタ自動車の2023年3月期決算から文字を自動取得してみます。
PyPDFとは
PyPDFは、PythonでPDFファイルを扱うためのライブラリです。PDFファイルの読み込み、解析、編集、書き出しなど、さまざまな操作を行うことができます。
今回はPyPDFの様々な機能の中からPDF内のテキストを自動に取得する機能について紹介します。
PyPDFの使い方
PyPDFは標準ライブラリではないので、インストールが必要となります。
pip install PyPDF
ライブラリをインストールしたら早速使っていきましょう。
from pypdf import PdfReader
今回のコードではトヨタ自動車の2023年3月期決算資料をtoyota_fiscal.pdfという名前で保存しています。
# PDFファイルの読み込み
reader = PdfReader("toyota_fiscal.pdf")
#テキストの抽出 ページごとリストで格納されます。
page = reader.pages[1]
print(page.extract_text())
2023年3月期決算短信〔IFRS〕(連結) 2023年5月10日 上場会社名 トヨタ自動車株式会 社 上場取引 所 東・名 コード番号 7203 URLhttps://global.toyota/jp/ 代表者 (役職名)取締役会 長 (氏名)豊田章男 問合せ先責任 者 (役職名)経理部長 (氏名)林秀明 (TEL)(0565)28-2121 定時株主総会開催予定 日 2023年6月14日 配当支払開始予定 日 2023年5月26日 有価証券報告書提出予定 日 2023年6月22日 決算補足説明資料作成の 有無 :有 決算説明会開催の有 無 :有 (百万円未満四捨五 入) 1.2023年3月期の連結業 績(2022年4月1日~2023年3月31日) (1)連結経営成績 (%表示は、対前期増減 率) 営業収益 営業利益 税引前利益 当期利益親会社の所有者 に 帰属する当期利益当期包括利 益 合計額 百万円 % 百万円 % 百万円 % 百万円 % 百万円 % 百万円 % 2023年3月期 37,154,29818.42,725,025△9.03,668,733△8.12,492,967△13.32,451,318△14.03,320,681△17.3 2022年3月期 31,379,50715.32,995,69736.33,990,53236.12,874,61425.92,850,11026.94,017,74221.9 基本的1株当たり 親会社の所有者 に 帰属する当期利益希薄化後1株当たり 親会社の所有者 に 帰属する当期利益親会社所有 者 帰属持分当期利益率資産合計 税引前利益率営業収益 営業利益率 円銭 円銭 % % % 2023年3月期 179.47 - 9.0 5.2 7.3 2022年3月期 205.23 205.23 11.5 6.1 9.5 (参考)持分法による投資損 益2023年3月期 643,063百万円 2022年3月期 560,346百万円 (注)2021年9月30日を基準日および 2021年10月1日を効力発生日とし て、普通株式1株につき5株の割合で株式分割を行 っていま す。 基本的1株当たり親会社の所有者 に帰属する当期利益およ び希薄化 後1株当たり親会社の所有者 に帰属する当期利益につ きまして は、 前連結会計年度の期首に 当該株式分割が行われた と仮定して算定していま す。 (注)2021年4月2日に第1回AA型種類株式の残存する全 部の取得および2021 年4月3日に第1回AA型種類株式の全部の消却 を完了して お り、2023年3月期におい て、潜在株式が存在しないた め希薄化 後1株当たり親会社の所有者 に帰属する当期利益は記 載していませ ん。 (2)連結財政状 態 資産合計 資本合計親会社の所有者 に 帰属する持分親会社所有 者 帰属持分比率1株当たり親会 社 所有者帰属持分 百万円 百万円 百万円 % 円銭 2023年3月期 74,303,180 29,264,213 28,338,706 38.1 2,089.08 2022年3月期 67,688,771 27,154,820 26,245,969 38.8 1,904.88 (注)2021年9月30日を基準日および 2021年10月1日を効力発生日とし て、普通株式1株につき5株の割合で株式分割を行 っていま す。 1株当たり親会社所有者帰 属持分につきまして は、前連結会計年度の期首に 当該株式分割が行われた と仮定して算定していま す。 (3)連結キャッシュ ・フローの状 況 営業活動によ る キャッシュ ・フロー投資活動によ る キャッシュ ・フロー財務活動によ る キャッシュ ・フロー現金及び現金同等 物 期末残高 百万円 百万円 百万円 百万円 2023年3月期 2,955,076 △1,598,890 △56,180 7,516,966 2022年3月期 3,722,615 △577,496 △2,466,516 6,113,655 2.配当の状 況 年間配当金 配当金総 額 (合計)配当性向 (連結)親会社所有 者 帰属持分配当 率 (連結) 第1四半期末 第2四半期末 第3四半期末 期末 合計 円銭 円銭 円銭 円銭 円銭 百万円 % % 2022年3月期 - 120.00 - 28.00 - 718,211 25.3 2.9 2023年3月期 - 25.00 - 35.00 60.00816,968 33.4 3.0 2024年3月期(予想) - - - - - - (注)2021年9月30日を基準日および 2021年10月1日を効力発生日とし て、普通株式1株につき5株の割合で株式分割を行 っていま す。 2022年3月期の第2四半期の配当金の額 は、当該株式分割前の実績の 配当金の額を記載してい ます。 2022年3月期の年間配当金につい ては、株式分割の実施により単 純合算ができないた め、表示していませ ん。 なお、株式分割を考慮しない場 合の年間配当金は260 円、株式分割を考慮する場合 の年間配当金は52円で す。
まとめ
今回はPyPDFによるテキスト取得を行いました。
PyPDFを使うと、簡単にPDFファイルから文字を取得することができます。この方法を応用することで、PDFファイルの内容を検索したり、編集したりすることができるようになります。
コメント
I do not even understand how I ended up here, but I assumed this publish used to be great