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

Breaker

以前、Layout Breakerという名前のソフトを作ろうと考えていました。レイアウトはともかく、ブレーカー、つまり破壊者です。周囲の反対により、取り下げましたが、個人的にはけっこう気に入っていて、 …

no image

POSTフィルター

VCでつくったWindowsアプリから、Webサイト上のPHPを呼び出して、 MySQLのDBをいじる。 そんなストーリーを思いつき、サンプルアプリを作った。 家からやったら問題なかったので会社から試 …

no image

いたちごっこ2

恐るべしクラッカー。万全と思われた対策も空しく、2回目のクラックが行われたところから話は始まります。 ●2度目のクラック 開発者は、某シリアル系クラックサイトで2度目の衝撃の遭遇しました。クラック結果 …

PDFアレコレVer1.01リリース

趣味のプログラムってホント楽しくて、平日の夜中だってのに眠りを忘れて取り組んでしまった。

no image

USBメモリを小容量に見せかける方法

USBメモリの大容量化が年々加速している。 おいらが最初に買ったのが10年くらい前で、128MBで1万円くらいだったか。 今では、4GBが500円で買える時代になっている。 個人で使うには容量が多いに …