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 を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

本質的にPDFに捺印できるようにしたPDFアレコレを公開

先週に引き続き今週もPDFアレコレをバージョンアップ。変更点は以下の通り。 Ver2.02 2020/3/21 ・捺印時に画面でクリックしたところに配置できるようにした。(Ver2.01は固定値) 詳 …

扱えるテキストファイルの最大行数は1億行

扱えるテキストファイルの行数の限界が1億行なのが秀丸エディター。その他⇒動作環境⇒環境にて、編集可能な最大行数が10万行~1億行で設定できる(32bitの場合は1000万行まで)。1億行のテキストファ …

no image

zlibの研究結果

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

zipcopy Ver1.02リリース

昨日に引き続きリビジョンアップを実施して、Ver1.02とした。 Ver1.02での変更点は以下の通り。 ・7zipを使わずに、DotNetZipの機能で圧縮・解凍を行えるようにした。 ・ファイル削除 …

PDFアレコレにページ抽出機能を追加して独自アイコンも組み込んだ

PDFアレコレに念願のページ抽出機能を追加した。ページの操作っていうのはPDF編集においてキモだ。ページの回転を考慮した編集操作が必要だからけっこう苦労しちゃった。変更点は以下の通り。 Ver2.06 …