-
2013-05-26 (日) 17:50 Windows 7
-
iTextSharpはiTextをC#に移植したオープンソースのライブラリです。
.netアプリケーションでPDF操作が必要な場合、iTextSharpを利用する事で簡単にPDF操作が出来るようになります。
iTextSharpを利用して複数ページで構成されたPDFファイルを複数の単一ページに分解してPDFファイルとして保存するアプリケーションを作ってみました。
ダウンロード:SplitPDF ver:1.0
登録日:2013-05-24 (ダウンロード回数:149)
itextsharpを利用して作成したPDF分割コンソールアプリケーションです。
PDFを引数として指定するか、ドラッグ&ドロップで指定してください。
.netframework3.5で作成しているので、Windows7環境ならそのまま解凍して動作するはずです。
iTextSharpを日本語で利用する上で、以下のリファレンスを参照すると非常に勉強になります。
iTextSharp クラスライブラリリファレンス
以下、vb.netのソースコードです。
Imports System.IO Imports iTextSharp.text Imports iTextSharp.text.pdf Module Module1 Sub Main() 'コマンドラインを配列で取得する Dim cmds As String() = System.Environment.GetCommandLineArgs() If cmds.Length > 1 Then For i = 1 To cmds.Length - 1 Dim Path As String = cmds(i) 'ファイルが存在する場合、処理を実行する。 If File.Exists(Path) Then Dim sParentName As String = System.IO.Path.GetDirectoryName(Path) Dim sFileName As String = System.IO.Path.GetFileNameWithoutExtension(Path) Dim sExtension As String = System.IO.Path.GetExtension(Path) Call SplitPDF(sParentName, sFileName, sExtension) End If Next Else Console.WriteLine("引数にPDFファイルを指定するか、ファイルをドラッグ&ドロップしてください。") End If End Sub ''' <summary> ''' PDFファイルを単一ページPDFに分割する ''' </summary> ''' <param name="sParentName">親ディレクトリ名</param> ''' <param name="sFileName">ファイル名</param> ''' <param name="sExtension">拡張子</param> Sub SplitPDF(ByVal sParentName As String, ByVal sFileName As String, ByVal sExtension As String) Try ' リーダー作成 Dim reader As PdfReader = New PdfReader(sParentName & "\" & sFileName & sExtension) 'ページ数の取得 Dim iStartPageNumber As Integer = 1 Dim iEndPageNumber As Integer = reader.NumberOfPages() Console.WriteLine("指定されたPDFファイルから{0}ページ見つかりました。", iEndPageNumber) For i As Integer = iStartPageNumber To iEndPageNumber 'ドキュメントを作成 Dim doc As Document = New Document() '分割後のPDFを保存するディレクトリ名 Dim sSaveFolerName As String = sParentName & "\" & sFileName 'フォルダが存在しなかった場合、新規作成する If Not File.Exists(sSaveFolerName) Then System.IO.Directory.CreateDirectory(sSaveFolerName) End If ' 出力ファイルを開く Console.WriteLine("{0}を書き出しています。", sFileName & "_" & i & sExtension) Dim writer As PdfWriter = PdfWriter.GetInstance(doc, New FileStream(sSaveFolerName & "\" & sFileName & "_" & i & sExtension, FileMode.Create)) ' ドキュメントオープン doc.Open() ' ContentByte作成 Dim cb As PdfContentByte = writer.DirectContent doc.SetPageSize(reader.GetPageSizeWithRotation(1)) doc.NewPage() ' ページサイズ設定 doc.SetPageSize(reader.GetPageSizeWithRotation(i)) ' ページ作成 doc.NewPage() ' ページ取得 Dim page As PdfImportedPage = writer.GetImportedPage(reader, i) ' ページ向きに合わせてページ追加 Dim iRotation As Integer = reader.GetPageRotation(i) If iRotation = 90 OrElse iRotation = 270 Then cb.AddTemplate(page, 0, -1.0F, 1.0F, 0, 0, reader.GetPageSizeWithRotation(i).Height) Else cb.AddTemplate(page, 1.0F, 0, 0, 1.0F, 0, 0) End If ' コミットする doc.Close() Next Catch ex As Exception Console.WriteLine(ex.Source) Console.WriteLine(ex.Message) End Try End Sub End Module
- Newer : Mini-ITXケースを使って録画パソコンを組み立てました。
- Older : BitLocker ドライブ暗号化についてのメモ
Comments:0
Trackbacks:0
- Trackback URL for this entry
- http://pnpk.net/cms/wp-trackback.php?p=4215
- Listed below are links to weblogs that reference
- iTextSharpを使ってPDF分割アプリケーションを作成する from http://pnpk.net