CAD日記

AutoCAD,DXF,DWG,SXFなどCADのことから、仮想通貨や投資関係、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

VisualStudio2005

帰国後の1週間を乗り切った。 バカンスモードの体からビジネスモードに切り替えるのは、 なかなか厳しかったが、この1週間で徐々に慣れてきた。 夢のような南国リゾートとは違い、現実世界は厳しい。 さて、V …

no image

フォルダ監視

フォルダを常時監視しておいて、ファイルが放り込まれたら、 自動的にファイル変換してくれたらよいね。 なんていう話があった。 一週間という短い間に、対象ソフトは別で2件あった。 こいつぁ、なんとかせにゃ …

no image

尻有

知る人ぞ知るアングラ系サイト。 尻有とか、どーもとか。 定期的にチェックして、マイソフトがクラックされてないかどうか チェックしてるんよ。 復活してましたね、どーもが。 入り口が、なかなか見つからなか …

若いもんにC++を教えてやって、これまでやってきたことが少しでも伝わってくれればと願う夜

ファイルをセレクトするというC++で作ったActiveXのDLLのデバッグができないかと彼がおいらのところに来た時点で、そいつはなかなかチカラがあるなと感じた。

no image

レイヤ付きPDFを出力する弊害

Illustratorという高価なアプリを使ってPDFを出力すると、PDFにレイヤが付いてしまって非表示にしたはずのレイヤが表示されて困ったなという事象に2回遭遇したので以下に記録。共通しているのが、 …