PDFアレコレのソースコード一式と解説

PDFアレコレはC#(VisualStudio2017)で作ったWindowsフォームアプリ。
iTextSharp 5.5とPdfiuViewer 2.13を組み込んで、PDFのビューイングと編集を実現している。アプリがどんなものなのかは、以下で参照されたし。フリーソフトとして公開しているので、ただ使いたい人はそれで済むはなし。
https://caddiary.com/?page_id=2502

ここではソースコード一式を公開して、どんなふうにPDFの描画や編集をしているかを知ってもらおうということを目的にしている。なので、この下の有料記事部分にプロジェクト一式を掲載する。
※この記事は単独で300円の値付けをしたが、マガジンは500円なので今後も進化していくPDFアレコレの機能のソースコードをチェックしたい人はマガジン購入をおススメする。
※GitHubにソースをアップしたので、本記事は全文公開とした。

以下がソースコード一式。zipを解凍した結果をVisual Studio 2017(C#)で開けば、どんなことになっているかわかるだろう。

解説は今後徐々に行っていくわけでが、今回はフォームおよび処理がどこでどのように実行しているのかを明らかにしよう。まずはフォーム。
●Form1.cs
現在未使用でいずれ消す。ファイルを指定して画像変換とテキスト出力することが当初の目的だったので残している。ここのインターフェースはForm2に引き継がれている。
●Form2.cs
PDFあれこれのメイン画面。ファイル操作、ページ操作、捺印操作を行って、PictureBoxにPDFを描画している。PDF描画はPdfium Viewerなので、Pdfiumだけに興味がある人はここを見ればよい。捺印まわりのUI操作もココ。ステータス領域は開いているPDFファイルの名前。

以下はサブ的な画面なので簡単に説明。
●Form3.cs:パスワード付きPDFを開く際のパスワード入力画面。
●Form4.cs:PDFのプロパティ表示&編集画面。
●Form5.cs:ページ抽出する際の開始・終了ページの指定をする画面。
●Form6.cs:ページ挿入する際の位置と対象をを指定する画面。
●Form7.cs:画像変換する際のが解像度や画像形式などを設定する画面。

フォームが画面まわりの制御をしているのに対して、iTextSharpによるPDF編集などは別ファイルに切り出しているので以下で解説。
●FuncFile.cs
ファイル操作まわりの処理を集めていて、OpenFileDialogとSaveFileDialogからはじまって、PDFのオープン・クローズ・セーブ(iTextSharp)とテキストファイル出力(PDFium)を実装。
●FuncImage.cs
PDFの画像変換。ようするにラスタライズなんで画面描画と同じでPDFiumで行っている。各種画像形式(bmp、Jpeg、PNG、Tiff)ごとにちょっとした処理の違いあり。白黒2値化は見どころかもしれない。
●ITSharp.cs
iTextSharpによるページ編集および捺印処理の実行部。ページはすでに回転していることがあるので、そのあたりを考慮した処理がキモ。
●Option.cs
PDFアレコレ自体が設定するオプション項目を管理するクラス。
●Program.cs
Form2を呼んでいるだけ。
●Uty.cs
ユーティリティー関数を集めたものでファイル削除、単位変換、時間計測など。

以上がPDFアレコレのソースコードの全貌。重要なのはForm2.cs、FuncFile.cs、FuncImage.cs、ITSharp.csの4つくらい。なので、今後はこれらを一つずつ解説していくつもり。

ここから先は

0字
PDFアレコレは定期的に機能強化しているので、改良したソースコードを更新して、解説を追加していくつもり。他にZipCopyなるC#のプログラムもあるので、そっちの解説も書いてみようかと思っている。

PDFアレコレは私が作っているフリーソフトで、iTextSharpとPDFiumを使ったC#のアプリ。PDFのビューイングはもちろんのこと…

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