CAD日記

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

ソフト開発

PDFアレコレにパスワード入力と情報表示を追加

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

オープン時のパスワードが設定されているPDFでパスワード入力できるようにしたのと、タイトルや作成者の情報を確認できるようにした版はこちら。
PDFアレコレ紹介ページ

パスワードについては、こんなダイアログを出すようにした。

パスワードなしでLoadさせようとしたときの例外エラーの内容が「パスワードで守られている」であった場合に、パスワード入力フォームを出して、パスワードを渡すLoad関数を呼び出してやるようにした。パスワードを間違ったら何度も試したいだろうということで、whileループでずっと続けるようにしつつ、パスワード入力をキャンセルしたらループを抜ける。ファイルオープン時の主要コードを抜き出してみる。

次はPDFのファイル情報。日本語表記はAcrobatに合わせた。ピンと来なかったのは、Autohor=作成者、Creator=アプリケーション、Producer=PDF変換。3つとも作成者っぽい英語表現だけど、それぞれ意味が違うんですな。

こうやってC#でいろんな機能を実現していると、C#という言語の使い方が学べる。フォーム間での受け渡し、OKボタン・キャンセルボタンを押したときの挙動なんていうUIまわりの基本がわかってきた。C++のDoModalはShowDialogなんだねぇ、とか。

PDFiumのAPI的には、タイトルや作成者のような情報は取得するだけでなく変更することもできる模様。オープンとクローズをすでに実装してるわけだから、情報変更後に保存や名前を付けて保存ができるとおもしろい。PdfDocumentクラスにSaveという関数があるのは確認したので次の課題とする。あとはページ処理か。DeletePage(ぺージ削除)、RotatePage(指定ページを回転)が見つかった。AddPage(ページ追加)やDividePage(ページ分割)なんてものがあるかなと探したが見当たらず。PDFのページを操作するというのはやや苦手なようだ。でも、うまく機能を組み合わせればできるような気もしている。ググればなんか出てくるかもしれないしな。

なかなか機能がそろってきたので、このアプリをフリーソフトとしてVectorや窓の杜に公開してみるというのもおもしろいな。当初の目的は、PDFimuでできることを試すためのテストだったわけだけれども、なかなか使えるんじゃねぇかという機能の盛り込み具体になってきている。Acrobat Readerでできないラスター変換、テキスト抽出なんてところを売りにしつつ、その他機能を盛りだくさん入れておけば、PDF参照・編集・変換アプリとして需要をつかめるような気がするぞ。

-ソフト開発

執筆者:


  1. コーイチ より:

    C#は、デスクトップアプリだけではなく、Webアプリも作成できるので、Webアプリもチャレンジしては、いかがでしょうか。

    • com より:

      Webアプリはちょいとハードル高いっすね。なんせ作ったことないんで。。仕事でメンテしたことはありますけどクソゲーだったから、その思いがよみがえってきちゃって。でもAzureを無料の枠で使ってみようかとは思っとりますので、いずれって感じで!

com にコメントする コメントをキャンセル

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

no image

SE

妻に勧められて、この本を呼んでみました。 SEのフシギな生態―失敗談から学ぶ成功のための30ヶ条 作者: きたみ りゅうじ 出版社/メーカー: 幻冬舎 発売日: 2005/12 メディア: 文庫 一言 …

no image

ベクタープロレジ大賞

Vectorがやってる、もっとも人気のあったダウンロードソフトを決める賞です。 Vectorと言えば、フリーウェアやシェアウェアをダウンロードできるところで一番有名なところです。窓の杜というところもあ …

no image

ペーパーモデル化ツール3

3年半の沈黙を経て、ペーパーモデル化ツールのバージョンアップが行われた。 とりあえずはVectorにアップロードされただけであり、販促活動はこれから 本格的に行われていくはずだ。 興味がある人は、以下 …

マルチスレッドプログラミング(C#編)

マルチスレッドプログラミング(C++編) マルチスレッドプログラミング(VB.net編) に続く第三弾はC#編。

no image

BMPをJPEGに

ビットマップ(BMP)ファイルをJPEGファイルに変換できないものか。 そんなテーマが頭の中で渦巻いていた。 既存のアプリ(フリーソフトなど)を使えば簡単だが、 プログラム的にやるとなると、なかなか。 …