PythonでPDFファイルを回転させる
PDFファイルって普通に回転できるんじゃない?って思われかもしれないですがその通りです。
実際、PDFファイルを回転させる作業は既存のソフトウェアで簡単に行うことができます。しかし、PythonのPyPDF2ライブラリを使うことで、PDFファイルの中から必要なページや特定の情報だけを取り出すという面白い点があります。(まるで手を伸ばしてPDFの中から必要な部分だけを取ってくるような感覚です。)
1、2時間目ではオブジェクトの流れをメインに解説してきました。
ポイントは「PdfFileWriter」に好きなものを詰め込めるという点でしょう。ページを回転するのはたしかに、簡単にできますが、それよりも好きなものを詰め込むことができるという点にたのしみを見出すことだと思っています。
それではコードを解説していきます。
ページを回転させて新たなPDFファイルとして保存するpythonコード
import PyPDF2, os # 1つ目のPDFファイルを読み込む pdf_file_obj = open('meetingminutes.pdf', 'rb') # PdfFileReaderオブジェクトを作成して、PDFファイルを解析 pdf_reader = PyPDF2.PdfFileReader(pdf_file_obj) # 最初のページを取得 page = pdf_reader.getPage(0) # ページを反時計回りに90度回転させる page.rotateCounterClockwise(90) # 新しいPDFファイルを作成するためのPdfFileWriterオブジェクトを初期化 pdf_writer = PyPDF2.PdfFileWriter() # 回転させたページを新しいPDFファイルに追加 pdf_writer.addPage(page) # 新しいPDFファイルを保存 pdf_output_file = open('rotatePage.pdf', 'wb') pdf_writer.write(pdf_output_file) pdf_output_file.close() # ファイルをクローズして、リソースを解放 pdf_file_obj.close()
プログラムの解説
ページを回転するメソッドは2つです。
- rotateCounterClockwise(90) → 時計回り回転
- rotateClockwise()→半時計回り回転
引数には90°単位の数字を渡します。
ポイントは10行目のgetPage()で1ページ目を取得し、それを回転させていることです。そして19行目でPdfFileWriterオブジェクト生成し、それに回転したページを追加しています。
そして22行目で新たにファイルを作成。PdfFileWriterオブジェクトをファイルに書き込みます。
ページを回転させることにあまり驚きはありませんが、やはり、好きなページや情報を取り出し、それを新しいPDFファイルとして再構築できるという点が非常に面白いです。
コメント