<%@ Page Language="VB" ContentType="application/pdf" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<%@ Import Namespace="com.lowagie.text" %>
<%@ Import Namespace="com.lowagie.text.pdf" %>
<script runat="server">
Sub Page_Load(sender As Object, e As EventArgs)
Response.AddHeader("content-disposition", "attachment; filename=result.pdf")
Dim doc As New Document()
Dim pw As PdfWriter = PdfWriter.getInstance(doc, Response.OutputStream)
doc.open()
' イメージを取り込み、90%の倍率でドキュメントに追加
Dim img As com.lowagie.text.Image = com.lowagie.text.Image.getInstance("http://www.wings.msn.to/image/wings.jpg")
img.scalePercent(90)
doc.add(img)
Dim font As New Font(BaseFont.createFont("HeiseiMin-W3", "UniJIS-UCS2-H", BaseFont.NOT_EMBEDDED), 12, Font.NORMAL)
' 列数3の表を作成
Dim tbl As New com.lowagie.text.Table(3)
' 表のヘッダを生成。setBackgroundColorメソッドで背景色を設定
Dim header() As String = {"ISBNコード", "書名", "出版社"}
For i As Integer = 0 To header.Length-1
Dim cel As New Cell(New Phrase(header(i), font))
cel.setBackgroundColor(System.Drawing.Color.LightGray)
tbl.addCell(cel)
Next
' ヘッダを生成することで、
' ページがまたがった場合には繰り返しヘッダを表示
tbl.endHeaders()
Dim objDb As New SqlConnection("Data Source=(local);User ID=sa;Password=sa;Persist Security Info=True;Initial Catalog=dotnet")
Dim objCom As New SqlCommand("SELECT isbn,title,publish FROM books", objDb)
objDb.Open()
Dim objDr As SqlDataReader = objCom.ExecuteReader()
' booksテーブルから取り出したデータを順に出力
Do While objDr.Read()
For i As Integer = 0 To 2
tbl.addCell(New Cell(New Phrase(objDr.GetString(i), font)))
Next
Loop
doc.add(tbl)
doc.close()
Response.End()
End Sub
</script>