Python PDF自作ツール

Python PDF自作ツール

目次

便利で高速なプログラミング言語と豊富な拡張機能

 私のPythonに対する印象は、書きやすく、デバッグしやすく、習得が速く、強力なバッチ処理ツール言語です。もちろん仕事で頻繁に使わないので、認識は比較的浅いです。 この時期、子供の効果的な復習を助けるために、両面スキャン可能なプリンターを購入した後、家庭用プリンターは商用ではないことに気づきました。いくつかの機能はまだ比較的不便です。 例えば、スキャンされたページは縦向きのみです。コンピューターで横向きで見るには、自分で回転させる必要があります。一部は冊子で、中央の綴じ線を除去してスキャンした後、ページを分割し、順序も再配置する必要があります。PDF編集ソフトウェアはありますが、このような単純な操作の作業量は依然として大きいです。 そして、多くのいわゆる無料PDF編集ソフトウェアには基本的な機能しかなく、インストールも必要です。少し高度な機能が必要になるとすぐにアップグレードやサブスクリプションが必要になります。 この時、まずPythonを思い浮かべました。

PDFライブラリの使用

 pdfrw - 少なくとも私のニーズには、このライブラリは非常に良いです。最初はPyPDF2を使っていましたが、分割時にファイルサイズが2倍になり、圧縮もできなかったため、途中で放棄してpdfrwに切り替えました。しかも、その作者は非常に熱心で、PyPDF2の分割ファイルサイズ2倍問題のissueスレッドでpdfrwの書き方を提供していました。

自作ツール

 すべてのツールは使いやすさを追求し、PDFを選択し、対応するpyファイルにドラッグアンドドロップすると実行が開始されるように設計されています。 すべての出力は、同じフォルダ内に新しく作成された「out」サブフォルダに統合されます。 例外が発生した場合、コンソール画面は10秒間一時停止し、エラーが発生したコマンドライン番号とエラー内容を確認できます。

使用前に、pdfrwをインストールしてください(pip install pdfrw)。 Pythonを3.8以上にアップグレードすることをお勧めします。新しいpythonランチャーがpyファイルを自動的に関連付けられることを発見しました。 ダブルクリックやファイルのドラッグによる実行は非常に便利です。

  1. mergePdf.py ドラッグした複数のファイルを1つのファイルに結合します。ドラッグするとき、マウスで最初に選択したファイルが最初になるようにしてください。 そうでないと、選択したファイルが先頭に移動してしまう可能性があります。
  2. rotateL90.py ドラッグしたすべてのファイルを左に90度回転させます。
  3. split&sort.py これは少し高度です。以下のスキャン前提に基づいて処理します。 綴じ線を除去してスキャンする場合 - 中央のページ(最初のページとして)からスキャンを開始します。 例えば、中央のページが11,12の場合、Page1(11,12), Page2(13,10), Page3(9,14)… したがって、このpyはドラッグしたすべてのファイルに対して以下の操作を実行し、それぞれを新しいpdfとして出力します。 元のファイルは冊子印刷に使用でき、処理されたファイルはコンピューター読書に使用できます。
    • ページ分割:各ページを左右のページに分割します。
    • ソート:上記のルールに従って、分割されたページを実際のページ順に並べ替えます。

2020-05-05 追加

  1. split&sort_reverse.py 前のスクリプトの小さな変更で、縦綴じ冊子のページ順(右から左に読み、ページをめくる古文のような冊子)に対応します。
  2. reverse.py PDFページの順序を単純に逆順にします。
  3. delete.py 指定されたページを削除し、単一ファイルのみを処理します。削除するページはスペースで区切って指定します。

Pythonがあると、肥大化したPDF編集ソフトを開くのが面倒に感じます。

同じニーズを持つ友人のためにpyファイルを共有します。またはサンプルとして参考にしてください。結局のところ、ニーズが類似している場合、ゼロから考えるよりも多くの労力を節約できます。

共有 :
comments powered by Disqus

関連記事

Git - Windows git環境で2つのコミット間のファイル差分を抽出しzipにパッケージ化する方法

Git - Windows git環境で2つのコミット間のファイル差分を抽出しzipにパッケージ化する方法

背景 仕事でGitを使い始めてしばらく経ちました。同僚はコマンドラインを直接使うことを勧めますが、私はやはりUIが好きです。SVN時代には、2回のコミット間の変更ファイルを抽出するのは非常に一般的な操作でした。Gitに切り替えてから、このコマンドをどう実現するか気になっていました。さまざまな方法があるのは知っていましたが、いつも自分の使い慣れた方法にはなりませんでした。 最近新しいアプローチを発見したので、整理して皆さんの参考に供します。

続きを読む