はじめに
こんにちは、Python界の情弱です。最近部屋を片付けようと思って、前々からほしいなあと思っていたScanSnap S1300を買ったんです。用途は自炊とかではなくたまった資料の電子化で。
FUJITSU ScanSnap S1300 FI-S1300
- 出版社/メーカー: 富士通
- 発売日: 2009/11/21
- メディア: Personal Computers
- 購入: 16人 クリック: 476回
- この商品を含むブログ (80件) を見る
で、数十枚とかある資料に結構付箋が貼ってあって、紙詰まりを防ぐために全ページ逆さまにスキャンするとかしてたんですね。Mac OS XならプレビューでPDFのページを回転して保存しなおしたり出来るので割と便利なんですが、それでも数十枚を全ページ回転させるのはだるい!
というわけで、自分が慣れ親しんだPythonでそれができないかな、と思って調べてみたら猛烈に便利なモジュールがあったので早速使ってみました。
ログ
まずはpyPdfをインストールします。普通にeasy_installでもpipでもインストール可能。
% pip install pypdf Downloading/unpacking pypdf Downloading pyPdf-1.13.tar.gz Running setup.py egg_info for package pypdf Installing collected packages: pypdf Running setup.py install for pypdf Successfully installed pypdf Cleaning up...
で、チュートリアルを丸パクリ気味にコードを書いたらあっという間に出来ました。
# -*- coding: utf-8 -*- from pyPdf import PdfFileWriter, PdfFileReader def main(filename): print "Rotate all page of PDF:", filename # expect filename as "*.pdf" output_filename = filename.replace(".pdf", "_rotated.pdf") original = PdfFileReader(file(filename, 'rb')) rotated = PdfFileWriter() page_num = original.getNumPages() for i in xrange(0, page_num): rotated.addPage(original.getPage(i).rotateClockwise(180)) outputStream = file(output_filename, "wb") rotated.write(outputStream) outputStream.close() if __name__ == "__main__": main("test.pdf")
やべー、超簡単。