論文や資料の印刷代がもったいなくて、余白除去N-up変換ツールを自作しました
(github.com/theodore-labs)こんにちは。文書や論文を毎日印刷していて紙代がもったいなく感じたので、自分で作ったWindows向けのPDF余白除去N-up変換ツールです。
なぜ作ったのか
プリンタードライバーの「集約印刷(4ページ/枚)」を使ってみると皆さんご存じのとおり、文字が小さくなりすぎて結局使えません。原因はフォントではなく余白です。スライドや論文のPDFはページの20〜30%が白い余白なのに、集約印刷ではその余白まで丸ごと縮小してしまうからです。
FinePdfは各ページの実際のコンテンツ領域(bounding box)を検出して先に余白を切り取ってから再配置します。同じ4-upでも文字がはっきり大きくなります。ページごとにコンテンツボックスのサイズが違っても文字サイズがばらつかないよう、全ページに単一の倍率を適用するオプションもあります。
機能
- N-up 2/4/8/16(ページ向きを自動判定)
- コンテンツ領域の検出 + 余白トリミング
- 冊子(Booklet)面付け — A4を二つ折りにするとA5冊子
- 複数のPDFを結合して一括変換
- インク節約モード / 白黒変換
- 変換前プレビュー + 「何枚節約できるか」カウンター
技術的に面白かった点
C# .NET 8 WinFormsで、PDFの解析はPdfPig、生成はPDFsharp、レンダリングはPDFium(PDFtoImage)を使っています。3つを混在させて使う中で座標系の罠がありました。PdfPigとPDFiumはページの/Rotate属性を無視した座標を返し、PDFsharpは適用後の座標を使うため、回転されたPDF(スキャン原稿やPPT書き出しでよくある)でコンテンツが見当違いの位置に配置されるバグに苦労しました。最終的には回転ページだけラスタライズ経由の経路に迂回しました。
価格は率直に
14日間の無料体験(機能制限なし)の後、買い切りライセンスは₩23,000です。サブスクではありません。似た機能のFinePrintが100ドル前後であることを考えて価格を決めました。購入しようとしたものの少し高く感じて、「それなら一度作ってみよう」と思ったのが動機でした。
Windows 10/11 x64対応、.NETのインストール不要(単一exe)です。
一人で作っているので、フィードバックを切実に求めています。特に「このPDFは変換結果がおかしい」と感じるファイルがあれば、教えていただければすぐに修正します。🙏
まだコメントはありません。