CAD日記

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

ソフト開発

iTextSharpによるPDFファイルのページ分割

投稿日:2015年9月12日 更新日:

iTextSharpはフリーのPDF関連コンポーネントであり、いろんなことができるのは知っていた。ドットNET、つまりC#かVB使いであれば、けっこう簡単にPDFを操ることができるのだが、あいにくおいらはC++使いなので、これまでは触れる機会がなかった。iTextSharpを使ったプログラムでPDFをページごとに分割したら、あるPDFにおいて元通りの状態で分割されずに、回転した状態になってしまうんだが、何とかならないか。という相談を受けて解決に導いてあげられたので、そのアウトプットをここに掲載する。
VB.NETのソースコード付きプログラムと回転したPDFのサンプル。

相談を受けた直後は、ググって以下のサイトを見つけたので「ここ見れ!」って教えてあげた。
iTextSharpを使ってPDF分割アプリケーションを作成する
ところが「それやってもダメだった」とのことなので、さらにググって以下を発見。
Rotating PDF in C# using iTextSharp
英語サイトでC#なんで少々腰がひけたけれども、乗りかかった船なので最後までがんばってみた。最初のサイトでは、90度と270度のときにそれっぽい処理を行っているがこれではダメ。すべての回転角度(0度、90度、180度、270度)に対して、異なる処理をいれなきゃいかんということが上記英語サイトからわかった。うまくいくかどうか確かめるために、ほとんど使ったことのないVBプログラムをやらなければならなくて、けっこうめんどうな気持ちになったが、やってみたらけっこう簡単だった。

調査の過程で以下サイトも見つけている。
PDFファイルを分割するサンプル(VB.NET)
回転角度0度以外だったら回転させる処理になっているので、うまくいきそうに見えたが実際はダメで、高さと幅の考慮がないことでうまくいかないことがわかった。

iTextSharpによるPDFファイルのページ分割を行いたいという要求は、今後少なくない人間が持つことだろう。
その際、上の二つのサイトにたどり着いて同じ組み方で不十分なプログラムになってしまうことを避けるために、おいらが導いた解決策を両サイトには連絡しておいた。そんなこんなで、iTextSharpが簡単でおもいしろいってことを発見できた。
iTextSharpは、Ver.5からAGPLライセンスが適用されていて扱いがやっかいだ。ようするに、iTextSharp5を組み込んだアプリ全体のソースコードを公開しなきゃいかん。そんなことを知っていたので、今回はiTextSharp4を使っている。近いうちにこのあたりのことを調べてみようと思っている。

-ソフト開発
-

執筆者:


comment

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

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

関連記事

no image

zlibの研究結果

zip圧縮・解凍のフリーソフトであるzlibについていろいろと調べた結果。最新版の1.2.11を使ってzlibwapi.dllを作ることはできたが、それを実際に使ってみるとまともに動かなかった。圧縮は …

コピー元でzip圧縮後にネットワーク越しにファイルコピーしてコピー先で解凍するのを自動化できないか

コピー元でzip圧縮後にネットワーク越しにファイルコピーしてコピー先で解凍するのを自動化できないか。。とここ数日考えていた。そんなことをしたい理由と要件をはっきりさせておく。 対象のファイルやフォルダ …

no image

C言語

遡ること10数年、初めて学んだコンピュータ言語がC言語でした。以来、ずっとやってます。机の上には本が一冊。 「実習C言語」(アスキー・ラーニングシステム) この本の画像を探してみましたが、古いだけにみ …

no image

KB2538242

また、VC2005再頒布可能パッケージの新しいものが出た。 昨日のWindowsUpdateでそれっぽいのが出てきたから、 もしやと思ったらビンゴだった。 Microsoft Visual C++ 2 …

Vectorに作者登録の申し込みをしてみた

Vectorとはフリーウェア、シェアウェアのダウンロードサイト。最近はあまり使わなくなった。もちろんフリーソフトはよく使っているんだけど、マイナーなものはあまり使わなくなってきていて、メジャーどころは …