自炊PDFを2値化して圧縮するツールを作りました
何をするツール?
自炊PDFの選択したページを2値化して圧縮します。用途としては図があるページと文字のみのページが混在する専門書やライトノベル等の自炊PDFの圧縮を想定しております。
特徴
ダウンロード・ソースコード
github.com
Releasesからダウンロードしてください。別途.NET Runtimeが必須です。
作るに至った経緯
自炊PDFのバックアップ先のOneDriveの容量がこんな感じだったので。
電子書籍リーダーに向けて変換+圧縮するツールは既存であるのですが、原寸のまま2値化圧縮するツールが探しても見当たらなかったため作成しました。
技術的内容と謝辞
ソースコードについては公開しているので、詳細は見ていただければと思います。
ツールの特性上、まともなGUI構築が必須であったため今回はWPFを利用してのGUI構築をターゲットとしてC#を開発言語としました。F#でWPFを触ったことはあるのですが、流石に今回は関数型言語に求める堅牢さは求めておらず、実装速度を優先したかったのでC#を選択しました。
PDFの解析・作成ライブラリにPdfSharpCoreを利用させていただきました。PDF仕様は公開されているため頑張れば独自で解析・作成するライブラリも実装できたかもしれませんが、このライブラリがなければおそらく挫折していました。改めてライブラリのコントリビュータの皆様には感謝いたします。