vol.72
- コツ・知識
- メールマガジン
PythonによるPDF操作自動化で業務効率化!~結合・分割からテキスト抽出までご紹介
ブログをご覧の皆様こんにちは!
株式会社インソースのPython学院事務局の衛藤です。
あらゆる組織で資料のやり取りに活用されているPDFファイルですが、
「ファイルの結合や分割が大変」「内容の編集や文章の抽出が難しい」などのお悩みや
「PDFを使った業務を効率化したい」という考えはございませんか?
この記事では、プログラミング言語Pythonを利用してPDFファイルの操作を自動化する際に
実際に使う4つのツール(PyPDF2、PDFMiner、PyMuPDF、Tesseract)と
それらを用いて実現できることをご紹介したいと思います。
ぜひ皆様の日頃行っている業務を思い出しながら読んでいただき、
「あの業務をもっと効率化できるかもしれない!」という発見の手助けになりましたらとても嬉しく思います!
(約10分で読めます)
~~~~~~~~~目次~~~~~~~~~
1.PDF操作を自動化するメリット
2.PythonでPDF操作を行うためのライブラリ4つ
① PyPDF2
② PDFMiner
③ PyMuPDF
④ Tesseract
3.PythonでPDF操作を自動化で実現できること
①PDFファイルの操作
・作成/変換
・結合
自動化事例
・分割
・削除
②PDFデータの操作
・テキスト抽出
・表抽出
・画像抽出
4.最後に
~~~~~~~~~~~~~~~~~~~~
1.PDF操作を自動化するメリット
多くの組織で、PDFを用いた定型・単純作業は数多く存在します。
例えば、PDF資料のテキストや表を抽出して別の資料に使いたいとき、
内容をコピー&ペーストをして、スペースや改行などの成型を行う必要があります。
しかし、文章が多くなるとその作業には多くの労力が必要となります。
また、PDF同士を結合したり、内容を分割・組み合わせたりする際に、
毎回外部のツール等を利用することが手間になっていることもあります。
PDF業務の自動化ができるようになると、以下のメリットがあります。
●作業時間の短縮
●人件費の削減
●ヒューマンエラーの削減
単純作業を効率化することによって、成果を出すためにより
注力すべき業務に時間を使うことができるようになります。
PDFの業務を自動化したい場合はコチラ
2. PythonでPDF操作を行うためのライブラリ4つ
Pythonは応用範囲が広く、特にほかのツールと組み合わせたビジネスの現場での自動化に適しています。
そこで、ここではPythonを利用してPDF操作を行うためのライブラリを4つご紹介いたします。
これらのライブラリと社内独自で使っているツールやExcel操作と組み合わせて、
複数のツールの自動化を行うことも可能です。
① PyPDF2
PDFファイルのページ操作を手軽に行うことができるライブラリです。
ページ操作に関する対応範囲が広く、結合・分割・回転などの操作を
短いコードで実行することができます。
また、Web上での公開情報が比較的多いため、エラー解決も容易に行うことができます。
② PDFMiner
ライブラリのインポートのみでテキスト読み取りが可能になるライブラリです。
日本語と英語の両方に対応しているため、日本語で書かれたPDFファイルの読み込みに使うことができます。
テキスト抽出以外に、フォントや画像、行の数といった情報も取得することが可能です。
③ PyMuPDF
テキストの読み取りや画像の抽出を得意としているライブラリです。
日本語と英語ともに対応しており、
ベクターファイル(記載内容をピクセルではなく数値で管理する形式のファイル)の読み取りも可能です。
④ Tesseract
画像として保存されたPDFの読み取りに活用することができるライブラリです。
Tesseract を用いたOCR(光学式文字認識)についてもっと知りたい方はコチラ
上記以外にも用途に応じてさまざまなライブラリが利用できます。
【参考】① PyPDF2や② PDFMinerについて学べる研修はコチラ
3.PythonでPDF操作を自動化で実現できること
(1)PDFファイルの操作
・作成/変換
レイアウト等を指定しての生成や、
Excel、CSV、Word、PowerPoint といったファイルの変換を行うことができます。
生成の方法や変換するファイルの形式によって使用するライブラリや手順は異なります。
大量の生成・変換が必要な際にはプログラムによる自動化がおすすめです。
・結合
Pythonを用いてPDFファイル同士の結合を行うことができます。
たくさんのデータを結合する必要があるときや、
PDFを結合する作業が何度も発生する場合に役立ちます。
■自社事例
Pythonを用いてPDFの結合を自動化した自社事例をご紹介いたします。
【営業部】複数のPDFファイルを結合
個人で作成した資料のPDFファイルを会議用に結合する必要があるが、
手作業で行うのは手間がかかる
結果: 1回につき30分かかっていた業務が1分になった!
毎月1回行っていたため、
(30-1分)×12か月間 = 約6時間 よって、
年間約6時間の短縮に成功しました。
PDF結合はその他の業務にも活用することができ、
社内で展開することで削減効果がより大きくなりました。
・分割
1つのPDFファイルを1ページずつに分割することや、
指定された範囲のみ別ファイルにすることができます。
結合と組み合わせれば複数の資料から必要なページを取り出し、
1つのPDFを作成することも可能です。
・削除
ページ単位での削除を行うことが可能です。
古くなったデータが掲載されているページの削除などに活用できます。
②PDFデータの操作
・テキスト抽出
PDFの内容を読み込み、テキストを抽出することが可能です。
例えば、以下の研修カリキュラムのPDFファイルに対して
Pythonを用いたテキスト抽出を行うと、
以下のような形で、対象のPDFファイルから日本語の文字だけを抽出することができました。
・表抽出
Pythonを用いてPDF内の表(テーブル)を抽出してCSVやExcelに変換することができます。
手動でコピーをしようとすると表の構造が失われてしまうことが多いため、
表の抽出を行う場合はプログラムを活用することも有用です。
・画像抽出
対象のPDFファイルから画像データを抽出し、jpeg等の画像ファイルを作成することができます。
例えば、以下のような画像が含まれるPDFファイルから画像の抜き出し処理を行なった場合、
以下のような画像データのみがまとめられたフォルダが作成されます。
4.最後に
今回はPythonでPDF操作を自動化する際に使用するライブラリと実現できることをご紹介いたしました。
皆様はもっと効率化できそう!と思えた業務はありましたでしょうか?
PDF操作に限らずPythonを使えるようになると、自身の業務を効率化できるようになります。
単純作業から解放され、時間をかけるべき業務に注力することができるようになるため、
仕事でより良い結果を出すことも望めます。
また、Pythonは非常に応用範囲が広いため、「もしかしたら、この業務も自動化できるかも」という
「自動化の案」がいたるところで出てくるようになり、
組織に「業務効率化」「改善」の風土を強く根付かせることにもつながります。
本記事が少しでも業務効率化やプログラミング学習検討の助けになりましたら幸いです!
関連研修
株式会社インソースのPython学院事務局の衛藤です。
あらゆる組織で資料のやり取りに活用されているPDFファイルですが、
「ファイルの結合や分割が大変」「内容の編集や文章の抽出が難しい」などのお悩みや
「PDFを使った業務を効率化したい」という考えはございませんか?
この記事では、プログラミング言語Pythonを利用してPDFファイルの操作を自動化する際に
実際に使う4つのツール(PyPDF2、PDFMiner、PyMuPDF、Tesseract)と
それらを用いて実現できることをご紹介したいと思います。
ぜひ皆様の日頃行っている業務を思い出しながら読んでいただき、
「あの業務をもっと効率化できるかもしれない!」という発見の手助けになりましたらとても嬉しく思います!
(約10分で読めます)
~~~~~~~~~目次~~~~~~~~~
1.PDF操作を自動化するメリット
2.PythonでPDF操作を行うためのライブラリ4つ
① PyPDF2
② PDFMiner
③ PyMuPDF
④ Tesseract
3.PythonでPDF操作を自動化で実現できること
①PDFファイルの操作
・作成/変換
・結合
自動化事例
・分割
・削除
②PDFデータの操作
・テキスト抽出
・表抽出
・画像抽出
4.最後に
~~~~~~~~~~~~~~~~~~~~
1.PDF操作を自動化するメリット
多くの組織で、PDFを用いた定型・単純作業は数多く存在します。 例えば、PDF資料のテキストや表を抽出して別の資料に使いたいとき、
内容をコピー&ペーストをして、スペースや改行などの成型を行う必要があります。
しかし、文章が多くなるとその作業には多くの労力が必要となります。
また、PDF同士を結合したり、内容を分割・組み合わせたりする際に、
毎回外部のツール等を利用することが手間になっていることもあります。
PDF業務の自動化ができるようになると、以下のメリットがあります。
●作業時間の短縮
●人件費の削減
●ヒューマンエラーの削減
単純作業を効率化することによって、成果を出すためにより
注力すべき業務に時間を使うことができるようになります。
PDFの業務を自動化したい場合はコチラ
2. PythonでPDF操作を行うためのライブラリ4つ
Pythonは応用範囲が広く、特にほかのツールと組み合わせたビジネスの現場での自動化に適しています。 そこで、ここではPythonを利用してPDF操作を行うためのライブラリを4つご紹介いたします。
これらのライブラリと社内独自で使っているツールやExcel操作と組み合わせて、
複数のツールの自動化を行うことも可能です。
① PyPDF2
PDFファイルのページ操作を手軽に行うことができるライブラリです。
ページ操作に関する対応範囲が広く、結合・分割・回転などの操作を
短いコードで実行することができます。
また、Web上での公開情報が比較的多いため、エラー解決も容易に行うことができます。
② PDFMiner
ライブラリのインポートのみでテキスト読み取りが可能になるライブラリです。
日本語と英語の両方に対応しているため、日本語で書かれたPDFファイルの読み込みに使うことができます。
テキスト抽出以外に、フォントや画像、行の数といった情報も取得することが可能です。
③ PyMuPDF
テキストの読み取りや画像の抽出を得意としているライブラリです。
日本語と英語ともに対応しており、
ベクターファイル(記載内容をピクセルではなく数値で管理する形式のファイル)の読み取りも可能です。
④ Tesseract
画像として保存されたPDFの読み取りに活用することができるライブラリです。
Tesseract を用いたOCR(光学式文字認識)についてもっと知りたい方はコチラ
上記以外にも用途に応じてさまざまなライブラリが利用できます。
【参考】① PyPDF2や② PDFMinerについて学べる研修はコチラ
3.PythonでPDF操作を自動化で実現できること
(1)PDFファイルの操作 ・作成/変換
レイアウト等を指定しての生成や、
Excel、CSV、Word、PowerPoint といったファイルの変換を行うことができます。
生成の方法や変換するファイルの形式によって使用するライブラリや手順は異なります。
大量の生成・変換が必要な際にはプログラムによる自動化がおすすめです。
・結合
Pythonを用いてPDFファイル同士の結合を行うことができます。
たくさんのデータを結合する必要があるときや、
PDFを結合する作業が何度も発生する場合に役立ちます。
■自社事例
Pythonを用いてPDFの結合を自動化した自社事例をご紹介いたします。
【営業部】複数のPDFファイルを結合
個人で作成した資料のPDFファイルを会議用に結合する必要があるが、
手作業で行うのは手間がかかる
結果: 1回につき30分かかっていた業務が1分になった!
毎月1回行っていたため、
(30-1分)×12か月間 = 約6時間 よって、
年間約6時間の短縮に成功しました。
PDF結合はその他の業務にも活用することができ、
社内で展開することで削減効果がより大きくなりました。
・分割
1つのPDFファイルを1ページずつに分割することや、
指定された範囲のみ別ファイルにすることができます。
結合と組み合わせれば複数の資料から必要なページを取り出し、
1つのPDFを作成することも可能です。
・削除
ページ単位での削除を行うことが可能です。
古くなったデータが掲載されているページの削除などに活用できます。
②PDFデータの操作
・テキスト抽出
PDFの内容を読み込み、テキストを抽出することが可能です。
例えば、以下の研修カリキュラムのPDFファイルに対して
Pythonを用いたテキスト抽出を行うと、
以下のような形で、対象のPDFファイルから日本語の文字だけを抽出することができました。
・表抽出
Pythonを用いてPDF内の表(テーブル)を抽出してCSVやExcelに変換することができます。
手動でコピーをしようとすると表の構造が失われてしまうことが多いため、
表の抽出を行う場合はプログラムを活用することも有用です。
・画像抽出
対象のPDFファイルから画像データを抽出し、jpeg等の画像ファイルを作成することができます。
例えば、以下のような画像が含まれるPDFファイルから画像の抜き出し処理を行なった場合、
以下のような画像データのみがまとめられたフォルダが作成されます。
4.最後に
今回はPythonでPDF操作を自動化する際に使用するライブラリと実現できることをご紹介いたしました。 皆様はもっと効率化できそう!と思えた業務はありましたでしょうか?
PDF操作に限らずPythonを使えるようになると、自身の業務を効率化できるようになります。
単純作業から解放され、時間をかけるべき業務に注力することができるようになるため、
仕事でより良い結果を出すことも望めます。
また、Pythonは非常に応用範囲が広いため、「もしかしたら、この業務も自動化できるかも」という
「自動化の案」がいたるところで出てくるようになり、
組織に「業務効率化」「改善」の風土を強く根付かせることにもつながります。
本記事が少しでも業務効率化やプログラミング学習検討の助けになりましたら幸いです!