CAD日記

主にAutoCADのことについて書いているけど、近頃は投資系ネタに注力している。自動売買、仮想通貨、PC関係、プログラミングなど。@caddiary

PDFアレコレ

(2022/6/4)

●概要
PDFのページ描画・ページ編集・ページ回転・画像変換・テキスト抽出など、PDFを素材として扱ってアレコレと役立てようというアプリ。他に、プロパティ参照・変更と捺印を行うことができる。
今後、さらにアレコレと機能を追加していって、便利なものに仕上げていきたい。

●ダウンロード
pdfArecore20220604

●アプリケーションのつくり
オープンソースのPDFiumを使って、PDFファイル操作を実現している。(正確にはPDFiumをラップしたPDFium Viewerを利用)
PDFiumは、Google社のChromeがPDFレンダリングエンジンとして採用している。PDFiumは「修正BSDライセンス」という比較的ゆるいライセンスであるため、こうしてフリーソフトとして公開することが容易にできる。
Ver2以降でさらにiTextSharpを利用。PDFの編集操作はiTextSharpが得意であるため。

●システム要件
OS:Windwos 8.1, 10のx64 Edition ※Ver2からWindows7とx86 Edition(32bit)を対象外とした
.NET Framework:4.6.1以上
HDD空き容量:26.3MB

●アプリ起動画面

Ver3以降でページ描画をベース画面として、そこから画像変換などを行えるようにした。

●機能
1.PDFファイル操作
・開く
ファイル選択を表示して、PDFを開く。エクスプローラからのドラッグ&ドロップでも可。パスワードが設定されたファイルの場合は、パスワード入力画面を表示。
・上書き保存/名前を付けて保存
開いたファイルを保存する。
・閉じる
開いたファイルを閉じる。
・セキュリティ
パスワードと編集許可の設定を行う。
・プロパティ
プロパティ情報を表示して変更する。タイトル、作成者、サブタイトルなど。

2.画像変換
・解像度
画像の解像度をDPI値で指定。100~600の選択肢から選択するか、任意の値を入力する。
・画像形式
Bitmap(フルカラー)、Bitmap(グレースケール)、Bitmap(白黒2値)、Jpeg、PNG、Tiff(フルカラー)、Tiff(白黒2値)から選択する。
・JPEG品質
0~100の値で指定する。値が大きいほど高品質でファイルサイズが大きくなる。
・BMP白黒しきい値
0~255での値で指定する。白黒2値のどちらとするかのしきい値。
・マルチページTIFF
複数ページをまとめた一つのTIFFファイルにする。
・画像変換実行
PDFファイルと同一フォルダ内に、ファイル名の末尾にページ数をカッコでくくったファイル名で画像ファイルに変換する。例)test.pdf ⇒ test[1].jpg

3.テキスト抽出
PDFファイル内のテキストを抽出して、テキストファイルとして保存する。例)test.pdf ⇒ test.txt

4.ページ編集
・ページ数表示
現在ページ/全ページの形式で表示する。
・ページ編集
削除・挿入・抽出を行う。

5.ページ回転
左90度、右90度、180度の回転を行う。

6.捺印
印影(PDFまたはPNG)と印影サイズを指定して捺印する。

7.用紙サイズ
縦×横をmmで表す。

●コマンドライン指定機能
1.PDFロード(UIなし)
/L=[PDFファイル名]
例)"/L=C:\work\sample.pdf"
※/Tまたは/G併用時に意味を成す

2.PDFロード(UIあり)
/U=[PDFファイル名]
例)"/U=C:\work\sample.pdf"

3.テキスト抽出
/T=[テキストファイル名]
例)"/T=C:\work\sample.txt"
※テキストファイル名省略時は、PDFファイル名と同一フォルダ同一名
※/L指定時のみ有効

4.画像変換
/G=[カンマ区切りで値を設定]
例)/G=300,3,70
※値の順番と意味
 ①解像度(1~1000くらい)
 ②画像形式(0~6)
  0:Bitmap(フルカラー)
  1:Bitmap(グレースケール)
  2:Bitmap(白黒2値)
  3:Jpeg
  4:PNG
  5:Tiff(フルカラー)
  6:Tiff(白黒2値)
 ③JPEG品質(0~100)
 ④BMP白黒しきい値(0~255)
 ⑤マルチページTIFF(0~1)
※値省略時は設定済みの値を使用
※/L指定時のみ有効

●リリース履歴
Ver3.06 2022/6/4
・pdfArecore.exeをダブルクリックしても起動しないという問題に対応。1年もの長きあいだずっと起動しないアプリを掲載していて残念。。
Ver3.05 2021/6/20
・PDFの描画位置を左右上下にセンタリングするようにした(以前は左上)。
・Ctrl+マウスホイール上下操作によって、PDF描画を拡大縮小できるようにした。ただし、移動との兼ね合いで一部描画領域が欠けることあり(不具合なのでいずれ直す)。拡大率をステータス領域に表示するようにした。
・Ctrl+マウスホイールドラッグ操作によって、PDF描画を移動できるようにした。
・捺印ボタンを押した際、画面の拡大/縮小/移動の結果を元に戻すようにした(捺印位置の計算がまだできていないため)。
Ver3.04 2021/2/14
・捺印時の印影サイズを指定できるようにした。指定できるサイズは6mm, 9mm, 10.5mm, 12mm, 13.5mmの5種類。ただし、png指定時のみで、pdf指定時はpdfのサイズに準拠する。
Ver3.02 2020/10/24
・捺印などのPDF編集操作後にファイルを閉じて開いて、再編集すると以前編集していたPDFが復活していた。閉じるとした際に、作業用PDFファイルを削除していなかったため。
・初回の捺印で上下反転した位置に捺印されることがあった。なぜか2回目は問題なかったので、初回捺印のみ空のpng画像で捺印する仕様とした。今後原因追及が必要。
・ファイルを開くパスなど、アプリが持つ設定が保存されていなかった。メイン画面クローズ時の設定保存がされなかったことが原因。
Ver3.01 2020/7/26
・セキュリティ設定を変更できるようにした。読取パスワード、編集パスワード、編集許可の各種項目が設定可能。暗号化はAES256bitで固定としたが、今後変更可能にしよう。パスワード付けた上での編集はできないので今後検討。
Ver3.00 2020/5/24
・起動画面をプレビュー画面(PDFの描画画面)に変更して、起動画面からすべての操作(画像変換・ページ編集・テキスト抽出など)を呼び出せるようにした。
・PDFアレコレのショートカットにpdfをドラッグ&ドロップすることで、ロード可能とした。
・操作ログ(操作・所要時間・結果・結果詳細)を廃止(今後テキストファイルに保存することを検討)。
・コマンドライン起動の/E(PDFロード時プレビュー&編集)を廃止。
Ver2.08 2020/5/6
・ページ挿入に対応した。指定したページの前に、指定したPDFファイルまたは空白ページを挿入できる。指定ページに最終ページを指定すれば最後に追加できる。
・プロパティ画面にキャンセルボタンを追加した。(OKボタンだと常に更新していたため)
・PDFを編集した際、%Temp%フォルダに作業用のPDFが残っていたので削除するようにした。
Ver2.07 2020/5/4
・プレビュー画面のメニューをツールバー形式にして整理した。
・ページ回転について左90度と180度の回転を追加した。
Ver2.06 2020/4/29
・プログラムおよびフォームのアイコンを独自のものに差し替えた。
・ページ削除で最初のページを対象にしてもページずれが発生しないようにした。PDFiumによる処理の問題なのでiTextSharpの処理に変更。
・ページ抽出に対応した。
・ページ削除およびページ抽出においては、元PDFおよび編集結果のpdfでファイルのプロパティやセキュリティ情報を引き継げていない(今後の課題)
Ver2.05 2020/4/12
・pdfArecore.exe起動時のパラメータを指定して、一部操作を実行するようにした。
 対応した操作:PDFロード[UIなし]、PDFロード[UIあり]、PDFロード時プレビュー&編集、テキスト抽出、画像変換
Ver2.04 2020/3/29
・プロパティで一部情報(タイトル、作成者、サブタイトル、キーワード、アプリケーション)を変更できるようにした。
Ver2.03 2020/3/22
・捺印データとしてpng画像に対応した。
・捺印時にマウスカーソルにプレビューデータを表示するようにした。(pngは指定したファイルのプレビュー。pdfは円だけで少々ずれる。)
Ver2.02 2020/3/21
・捺印時に画面でクリックしたところに配置できるようにした。(Ver2.01は固定値)
Ver2.01 2020/3/15
・プレビューからの捺印機能に対応。捺印用データはとりあえずpdfのみで配置点が固定。※そのうち、捺印データに自作の捺印データを使えるようにしたい。
Ver2.00 2019/10/13
・プレービューからのページ回転に対応。PDFiumのPDF編集能力は低いため、iTextSharpによるPDF編集の第一歩。PDF編集はこれからも機能拡張していくつもり。
・セーブにおいて、開いているファイルに対する上書き保存を可能とした。
・シングルページTIFFへの画像変換に対応した。
Ver1.02 2018/10/7
・プレビューページに削除機能を追加。(これでセーブできる意味ができた)
・画像変換の形式にTiff(フルカラー、白黒2値)を追加して、マルチページTiffへの変換を可能とした。(けっこうなメモリーを使ってしまうのが課題)
Ver1.01 2018/10/2
・セーブ機能追加。何も編集できないから今のところ意味なし。プロパティの変更ができるかと思ってセーブを実装したがあてが外れた。ページの削除や回転ができるようになればセーブの意味も出てくるだろう。
・画像変換の解像度、画像形式などの設定を保持して、次回起動時に読み込むようにした。
・プレビューウインドウの位置とサイズを保持して、次回起動時に読み込むようにした。
Ver1.00 2018/9/24
・初期版リリース

Copyright(c) 2021, caddiary

投稿日:2018年9月24日 更新日:

執筆者: