Crystal Report to PDF

จาก บทความ – Display image from file path in Crystal .NET Report

ถ้าต้องการ Export รายงานเป็น PDF ทำได้ง่ายๆโดยใช้ method ExportToDisk เป็น PDF แล้วเปิดไฟล์ PDF ดว้ย Control webBrowser




3. Code

4. Run โปรแกรม (เปิดไฟล์ PDF ดว้ย Control webBrowser)

5. code:

// Code ส่วนที่เพิ่มตัวหนาครับ

private void Form1_Load(object sender, EventArgs e)


string sql = "select EmployeeID, FirstName, LastName,PhotoPath from Employees";

SqlConnection cnn = new SqlConnection("Server=(local)\SQLEXPRESS;uid=xx;pwd=xxxx;database=Northwind;");


//สร้าง temp table Add column ตาม DataSet = imEmployees

DataTable dt = new DataTable("imEmployees");// ชื่อ Table imEmployees

dt.Columns.Add(new DataColumn("Emp_ID", typeof(string)));

dt.Columns.Add(new DataColumn("FName", typeof(string)));

dt.Columns.Add(new DataColumn("LName", typeof(string)));

dt.Columns.Add(new DataColumn("Photo", typeof(System.Byte[]))); // DataType ของ Photo เป็น System.Byte[]

dsImg.Tables.Add(dt);// Add table เข้าไปใน DataSet

SqlDataAdapter da = new SqlDataAdapter(sql, cnn);

sdr = da.SelectCommand.ExecuteReader();

if (sdr.HasRows)


while (sdr.Read())


string path = Application.StartupPath + "\" + sdr["PhotoPath"].ToString();

FileStream FilStr = new FileStream(path, FileMode.Open);// เปิด file แบบ Stream เพื่ออ่านเป็น Binary

BinaryReader BinRed = new BinaryReader(FilStr);

DataRow dr = this.dsImg.Tables["imEmployees"].NewRow(); //เพิ่ม Rows ใหม่

// Add ข้อมูลที่อ่านจาก SQL Base ใส่เข้าไปแต่ละ Rows ของ Temp Table

dr["Emp_ID"] = sdr["EmployeeID"];

dr["FName"] = sdr["FirstName"];

dr["LName"] = sdr["LastName"];

// Column Photo ใส่ข้อมูล Binary

dr["Photo"] = BinRed.ReadBytes((int)BinRed.BaseStream.Length);

dsImg.Tables["imEmployees"].Rows.Add(dr); //Add Row เข้าไปใน Temp Table

// คืน memory ให้ OS

FilStr.Close(); //ปิด FileStream

BinRed.Close(); //ปิด BinaryReader


// คืน memory ให้ OS



CrystalReport1 crp = new CrystalReport1();


string fileName = Application.StartupPath + "PortableDoc.pdf";



//crystalReportViewer1.ReportSource = crp;





Nuchit Atjanawat is a Microsoft MVP, GreatFriends Community Leader, WindowsITPro Columnist(Mr.Nano), Silverlight Business Application Instructor, Speaker in various Microsoft events, Author, passionate Blogger and a Software Engineer by profession. He has a very good skill over Silverlight, LightSwitch, C#, XAML & Blend. He shares his technical findings, tutorials in his technical blog. Follow his Blog and Facebook page to be updated on latest articles. - Technical Blog: - WindowsITPro Columnist(Mr.Nano): - The GreatFriends.Biz Community Discussion Board (nano): - witter: - Facebook Page: - Instructor:,

เขียนใน Crystal Reports


Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out /  เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out /  เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out /  เปลี่ยนแปลง )


Connecting to %s

In Archive
%d bloggers like this: