TOPへ戻る

iTextSharpを使用してVB.NETでPDF帳票を読み込む

iTextSharpを使用してPDFの帳票を読み込んで、加工する方法が中々WEB上で見当たらなかったので、
ページを作ってみました。

iTextSharpを設定する

サイト主はMicrosoft Visual Basic 2005 Express Editionを使いました。
※最新版は、Microsoft Visual Basic 2008 Express Editionがあります。

まず、itextsharp.dllをダウンロードします。

緑で囲ったファイルをダウンロードします。
解凍すると、itextsharp.dll が入っています。

Visual Basic 2005 Express Editionで、fooプロジェクトを作成し、一度保存します。


fooプロジェクとのフォルダを開き、libフォルダを作成します。
サイト主の環境の場合、C:\Documents and Settings\su\My Documents\Visual Studio 2005\Projects\foo\foo ココに作成します。


libフォルダ内にitextsharp.dllをコピーします。


Visual Basic 2005 Express Editionを立ち上げて、fooプロジェクトを開きます。
プロジェクト→参照の追加(R)を選択します。


参照タグで、先ほど itextshap.dll を入れた場所を選択します。


つぎに、Public Class Form1 の前に、imports を追加します。

'iTextSharp関連の名前空間 Imports iTextSharp.text Imports iTextSharp.text.pdf 'iTextSharp.text.FontクラスがSystem.Drawing.Fontクラスと '混在するためiFontという別名を設定 Imports iFont = iTextSharp.text.Font 'ファイルIO関連の名前空間 Imports System.IO Imports System.Diagnostics

帳票の用意

このサイトから、帳票を調達しました。
会社名と合価を削除した foo.pdf を作成します。



プログラム

foo.pdf を読み込んで、50,000円 と foo株式会社 御中 の文字を追加して var.pdf を作成します。

'PDFファイルを開く Dim reader As PdfReader = New PdfReader("foo.pdf") 'ページ数の取得 Dim n As Integer = reader.NumberOfPages 'ドキュメントを作成 Dim doc As Document = New Document() '出力ファイルを開く Dim writer As PdfWriter = PdfWriter.GetInstance(doc, New FileStream("var.pdf", FileMode.Create)) 'ドキュメントを開く doc.Open() '1ページ読み込み Dim page As PdfImportedPage = writer.GetImportedPage(reader, 1) Dim cb As PdfContentByte = writer.DirectContent '1ページ読み込んだページを追記します。 cb.AddTemplate(page, 0, 0) 'テキストの始まり cb.BeginText() 'フォントとフォントサイズの指定 Dim bf As BaseFont = BaseFont.CreateFont("c:\windows\fonts\msgothic.ttc,0", BaseFont.IDENTITY_H, True) cb.SetFontAndSize(bf, 20) cb.ShowTextAligned(PdfContentByte.ALIGN_CENTER, "50,000円", 200, 610, 0) cb.ShowTextAligned(PdfContentByte.ALIGN_CENTER, "foo株式会社 御中", 180, 670, 0) cb.EndText() 'ドキュメントを閉じる doc.Close()

完成



プログラムのダウンロード

ダウンロードする