見出し画像

Python初心者がChatGPTとGoogle Colaboratoryでコード書いた話2


前回の話

前回 やったことは
A3以上の資料で奇数ページだけスキャン、偶数ページだけスキャンしたのを
本みたいに読めるようにした

Scansnapは便利だけど、
うっかりすると面倒に

Scansnapってご存知?
紙ものの名刺とか学校、役所、自治会で配られる紙ものをPDFにする
スキャナーのこと

我が家はScansnapが好きでix500とSV600の二台持ち
どっちも型が古いかもしれないけど、問題なく使えています。(2024年現在

ix500はコピー複合機のスキャナーみたいな
裁断した本や、同じ形の紙、幅が同じ長さのレシートを読み取るのに適してて
SV600は上から読み取る用のスキャナーで、
見開きA3サイズの裁断してない本や、形が一枚一枚違う名刺やリーフレット、子どもの絵とか読み取るのに適してる

この前、SV600で学校のアルバムをスキャンしてPDFで見ようとしたら
うっかり、右綴じと左綴じを間違えて設定してたみたいで
ページ順がごちゃごちゃに(・・;)
あちゃー
もう一回スキャンするのは面倒なので、どうにかこうにかしたい


https://www.pfu.ricoh.com/scansnap/products/sv600/

https://www.pfu.ricoh.com/scansnap/products/ix500/


PDF 左綴じを右綴じにしよう

前回とおんなじかんじなんだけど、
今回したいのは、
Scansnap(スキャナー)で取り込んだPDF
右綴じの本を
(誤)左綴じの並び替えにしてしまったので、
(正)右綴じの並び替えに直そうってこと

scansnap専用アプリでも直せなかったりするので、
PythonとGoogle Colaboratory使って、PDFの入れ替えしたことを思い出してリベンジ

Google Colaboratoryひらく

Google Colaboratoryで検索して開く、アカウントログインされてるから前回のデータもあるね。
PDFをどうにかこうにかしたいときは
PyPDF2っていうのをインストールするんだっけね

pip install PyPDF2

+コードして、入力、再生ボタンマークを押す
これは問題なく、12秒で終わった

Chat-GPTにきいてみよう

ざっくりと
「PDFの並び替えをPythonでやってほしい 奇数ページを偶数ページの場所へ移動できますか」と聞いてみたのを入れてみる
こんな言い方であってるのか うーん(・・;)

とりあえず、作ってくれたコードはこれ

import PyPDF2

def reorder_pdf(input_path, output_path):
    # PDFファイルを読み込む
    with open(input_path, 'rb') as file:
        pdf_reader = PyPDF2.PdfReader(file)
        total_pages = len(pdf_reader.pages)

        # ページを奇数ページと偶数ページに分ける
        odd_pages = [pdf_reader.pages[i] for i in range(total_pages) if i % 2 == 0]  # 奇数ページ(0, 2, 4,...)
        even_pages = [pdf_reader.pages[i] for i in range(total_pages) if i % 2 == 1]  # 偶数ページ(1, 3, 5,...)

        # 奇数ページを偶数ページの場所に移動し、新しい順序を作成
        new_order_pages = []
        max_length = max(len(odd_pages), len(even_pages))
        for i in range(max_length):
            if i < len(even_pages):
                new_order_pages.append(even_pages[i])
            if i < len(odd_pages):
                new_order_pages.append(odd_pages[i])

        # 出力PDFファイルを作成し、新しい順序でページを追加
        with open(output_path, 'wb') as output_file:
            pdf_writer = PyPDF2.PdfWriter()
            for page in new_order_pages:
                pdf_writer.add_page(page)
            pdf_writer.write(output_file)

if __name__ == "__main__":
    input_pdf_path = "input.pdf"    # 入力PDFファイルのパス
    output_pdf_path = "output.pdf"  # 出力PDFファイルのパス

    reorder_pdf(input_pdf_path, output_pdf_path)

Google Colaboratoryに早速入れて
input_pdf_path = "input.pdf" # 入力PDFファイルのパス だっていうから
学校のアルバムPDFを一時的にinput.pdfに変更して
Colaboratoryのファイルマークのところにぽいっと入れてみる

緑の丸出てきて 読み込んでるっぽい。 丸が消えたらオッケー

そのまま実行してみよう

コード部分の再生ボタンを押す

from google.colab import drive
drive.mount('/content/drive')

ファイルマークのところにoutput.pdfが出てくるまで、しばらく待つ
F5キーで更新

output.pdfが出たので、ダウンロード
ローカルファイルのダウンロードファイルに入る

お!一発クリア

一発クリア!思い通りのものが出ました~
左がinput.pdf 右がoutput.pdf 

左がinput.pdf 右がoutput.pdf 

そうそう!これが欲しかったんだよ!

前回はめちゃくちゃエラー出てたので、またGPTに意味を聴くのかなと思っていたけど、すんなり思い通りになりました。


以上、Python初心者がChatGPTとGoogle Colaboratoryでコード書いた話2でした~

ありがとうChatGPT!
ありがとうGoogle Colaboratory!
ありがとうPython!!!!

また、PDFでなにか困ったら頼むぞ。

退屈なことはPythonにやらせよう
面倒なことはchatgptにやらせよう って本読みはじめようかな~

この記事が気に入ったらサポートをしてみませんか?