CAD日記

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

ソフト開発

PDFアレコレで画面の拡大・縮小・移動ができるようにした

投稿日:

PDFアレコレをバージョンアップ。約4か月ぶり。
Ver3.05 2021/6/20
・PDFの描画位置を左右上下にセンタリングするようにした(以前は左上)。
・Ctrl+マウスホイール上下操作によって、PDF描画を拡大縮小できるようにした。ただし、移動との兼ね合いで一部描画領域が欠けることあり(不具合なのでいずれ直す)。拡大率をステータス領域に表示するようにした。
・Ctrl+マウスホイールドラッグ操作によって、PDF描画を移動できるようにした。
・捺印ボタンを押した際、画面の拡大/縮小/移動の結果を元に戻すようにした(捺印位置の計算がまだできていないため)。
詳細はコチラ。

念願の描画系処理を実装したが、まだ中途半端な状態。これまではPDFの中身を描画できるといっても、ウインドウ領域の中にいっぱいいっぱいで表示するだけで、任意の拡大・縮小ができていなかった。捺印するのに、画面を拡大して狙いの場所をはっきりさせるために実現したわけだが、肝心の捺印ポジションの計算がまだできていないから、捺印ボタン押下時に描画状態を強制リセットするという仕様。いやはや中途半端なり。

画面の拡大縮小移動は、pictureBoxやPDFiumの機能でサクっと実現できないかと調査したが結局できず。仕方なく、マウスイベントを取って、PDFiumのRenderする領域を可変として、pictureBoxの位置を変更した。いろいろやってみてわかったけど、この手の画面制御はこんな感じで泥臭くやるしかない。C#だから、C++と比べたら何をやるにも簡単ではあるが、今回の画面操作はけっこうてこずった。

近々、この中途半端なところを解消しつつ、コマンドラインから捺印できるようにしましょうかね。

-ソフト開発

執筆者:


comment

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

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

関連記事

ハッチングの境界データのスプラインをポリラインに分解する方法

dwgにおけるハッチングの表現はややこしくて、boundary(境界)オブジェクトが多階層化している。境界オブジェクトには大きく2つあって、1つの閉じたポリラインか複数のその他図形群かとなる。1つのポ …

zipcopy Ver1.07リリース

zipcopyをリビジョンアップして、Ver1.07とした。 詳細は以下の通り。 Ver1.07 2020/3/1 ・zip圧縮と解凍、ファイルコピーと削除処理についてスレッド化して、これら処理中にダ …

C#でzip圧縮と解凍したりasync/awaitで非同期処理をするソースコード公開

zipcopyという名の開発プロジェクトはここらで終わりにしようと思い至ったので、そのソースコードを公開する。 zipcopyのソースコード 開発環境はVisualStudio 2017 C#で、Nu …

Teigha改めODAでDWGをDXFに変換するプログラムをつくってみよう!【Part.3】

Part.2の続編。今回はODAプロジェクトがどんな構造になっているのかを、逐一つまびらかにこんこんと説明してみる。 【1.MFCプロジェクトの作成】 ファイル⇒新規作成⇒プロジェクトで、MFCアプリ …

no image

いたちごっこ1

ソフト開発者とクラッカー。その果てしない戦いの日々をここに記します。現在進行形のその戦いに終止符を打つべく、努力を重ねている今、臨場感をもって伝えられれば、と思います。 その前に、「いたちごっこ」とい …