CAD日記

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

ソフト開発

PDFアレコレはiTextSharp7も組み込むことにする

投稿日:

PDFiumViewerを使ってPDFアレコレという名のフリーソフトを作ってみたわけだが、PDFiumViewerの限界が見えてきた。

PDFiumで何ができるって、大きくとらえるとPDFファイルのロード(Load)・セーブ(Save)・テキスト抽出(GetPdfText)・描画(Render)・ページ削除(DeletePage)といったところ。描画した結果としてImageを取得できるからJpegやBmpに変換できるところが注目したポイントだった。ページ削除ができるんならば、ページごとの処理としての回転(RotatePage)もできるだろうと実装しはじめてはまった。

RotatePageは実質使えない。実行直後にPdfDocumentに反映しないから、わざわざMemoryStreamに保存してからLoadしなければならなかったことをクリアしたら、今度は
Rotate90による1回目の処理は動くが2回目が動かなかった。第2引数の角度指定は、現在の角度から相対的に回転するものだと勘違いしていたことが原因。Rotate0/Rotate90/Rotate180/Rotate270という4つのパラメータの中にRotate0があることから、絶対的な角度を指定するものだと気付いた。であれば、現在の角度を把握できないと、時計回りに90度回転させるなんてことができない。PdfDocumentでそんなプロパティがあるかと探すも存在せず。MemoryStreamの処理も複雑怪奇になってきて、こりゃいかんとやめることにした。PDFiumで使えるのは描画(画像変換含む)とテキスト抽出だけ。

PDFのページ削除/回転/追加/分解なんてところは、iTextSharpでやるのがよい。iTextSharpはライセンスが厳しいということを聞いていたので軽く調べた。バージョン4はゆるいからよく商用利用されているが、開発がストップしていてこの先しぼむばかりだから却下。バージョン5以降はAGPLv3なる相当キビシいライセンスが適用される。ようするに、ソース公開を要求されたら公開する義務を負うということ。ソースの入手先や手段を書いておけばいいらしい。おいらの場合、フリーソフトでやっているものだからソース公開しても何も問題はない。逆にソースを共有する誰かがいれば、協調して進化していけるという可能性が広がる。バージョン5は2017年に開発がストップして、今はバージョン7になっている。ということで、使うのはバージョン7とする。PDFimu同様、VisualStudioのNuGetで取得できる。

PDFiumとiTextShapを組み込んだ版としてPDFアレコレをバージョン2にするつもり。PDFの描画してわかりやすいようにした上で、画像変換/テキスト出力/もろもろページ処理をしてみようじゃないか。そうすると、有料版Acrobatの機能に近づいて、人気が出ると予想。ページ処理については、フリーソフトとして人気が高いpdf_asの機能を参考にする。

おもしろくなってきたぞ。会社でやらされているクソアプリケーション開発なんてテキトーに受け流しておいて、趣味としてプログラミングをやるってわけだ。本当はやりたいことが仕事になればいいんだけど、現実はそうならないからねぇ。

-ソフト開発

執筆者:


comment

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

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

関連記事

no image

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

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

AutoCADのクリッピング情報を語る

AutoCADのクリッピング情報は様々あって、代表的なものとしてレイアウトのビューポート枠によってモデルの絵をクリッピングするというのがある。モデルをのぞき込む窓がビーポートであって、そいつにはレンズ …

高速なPDFビューアをC#とPDFiumでサクっと作ってみよう!

どんなPDFビューアを作ったのかというと、こんなモノ。 開いたPDFがCADの図面っぽいが、れっきとしたPDFファイルであり、ベクトル情報をちゃんと表現しているかを明らかにしたかったので使ったデータ。 …

no image

複数ファイルの名前やパスを取得するのに便利なフリーソフト

ファイル名の一覧を作りたいときに使えるものはこれだ。 NameToClipboard64 インストーラは付いていないが、以下の簡単な操作でセットアップができる。 1.zipをダウンロード後解凍して適当 …

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

Teigha改めODA(Open Design Alliance)は有料のライブラリー。商用利用するならば、最低でも年間1500ドル(初年度2000ドル)を要する。この場合、配布本数が100本に限られ …