<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_.net BI</title><subtitle type="text">共同學習，共同進步</subtitle><id>http://feed.cnblogs.com/blog/u/19247/rss</id><updated>2012-02-03T00:38:53Z</updated><author><name>Nina</name><uri>http://www.cnblogs.com/Nina-piaoye/</uri></author><generator>CNBlogs BlogServer</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Nina-piaoye/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/19247/rss"/><entry><id>http://www.cnblogs.com/Nina-piaoye/archive/2012/02/03/2336473.html</id><title type="text">c# 調用sql</title><summary type="text">using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Configuration;using System.Data;using System.Data.SqlClient;using System.Collections;using System.IO;using System.Text;using System.Data.SqlClient;using System.Xml;/// &amp;lt;summary&amp;gt; /// SQLHelper 的摘要描述 /</summary><published>2012-02-03T00:39:00Z</published><updated>2012-02-03T00:39:00Z</updated><author><name>Nina</name><uri>http://www.cnblogs.com/Nina-piaoye/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Nina-piaoye/archive/2012/02/03/2336473.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Nina-piaoye/archive/2012/02/03/2336473.html"/><content type="html">&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;pre&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt; System;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt; System.Collections.Generic;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt; System.Linq;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt; System.Text;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt; System.Configuration;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt; System.Data;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt; System.Data.SqlClient;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt; System.Collections;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt; System.IO;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt; System.Text;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt; System.Data.SqlClient;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt; System.Xml;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; SQLHelper 的摘要描述&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;class&lt;/span&gt; SQLHelper&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;static&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;readonly&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; ConnectionString = ConfigurationManager.ConnectionStrings[&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;LocalSqlServer&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;].ConnectionString;&lt;br /&gt;&lt;br /&gt;    &lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;#region&lt;/span&gt; ExecuteReader():執行并返回一個數據集&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; 執行一段SqlCommand并返回一個結果集&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;param name="strSql"&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;sql語句&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;param name="Parms"&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;參數&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&lt;br /&gt;&lt;/span&gt;    &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; SqlDataReader ExecuteReader(&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; strSql, SqlParameter[] Parms)&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;try&lt;/span&gt;&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;using&lt;/span&gt; (SqlConnection conn = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; SqlConnection(ConnectionString))&lt;br /&gt;            {&lt;br /&gt;                &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (conn.State == ConnectionState.Open)&lt;br /&gt;                {&lt;br /&gt;                    conn.Close();&lt;br /&gt;                }&lt;br /&gt;&lt;br /&gt;                &lt;span style="color: #0000ff;"&gt;using&lt;/span&gt; (SqlCommand cmd = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; SqlCommand())&lt;br /&gt;                {&lt;br /&gt;                    cmd.Connection = conn;&lt;br /&gt;                    cmd.CommandText = strSql;&lt;br /&gt;                    cmd.CommandType = CommandType.StoredProcedure;&lt;br /&gt;&lt;br /&gt;                    cmd.Parameters.AddRange(Parms);&lt;br /&gt;                    conn.Open();&lt;br /&gt;                    SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);&lt;br /&gt;                    cmd.Parameters.Clear();&lt;br /&gt;                    &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; rdr;&lt;br /&gt;                    conn.Close();&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;          &lt;br /&gt;        }&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;catch&lt;/span&gt; (Exception ex)&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;fn_share fn_share = new fn_share();&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;            systemErrorLog(strSql + ex.Message);&lt;br /&gt;&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; (SqlDataReader)&lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;br /&gt;    }&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;#endregion&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;   &lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;#region&lt;/span&gt; ExecuteNonQuery():執行并返回一個結果，1代表成功，-1代表失敗&lt;br /&gt;    &lt;br /&gt;    &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; 執行并返回一個結果，1代表成功，-1代表失敗&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;param name="strSql"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;param name="Parms"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&lt;br /&gt;&lt;/span&gt;    &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; ExecuteNonQuery(&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; strSql, SqlParameter[] Parms)&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;try&lt;/span&gt;&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; retcount = -&lt;span style="color: #800080;"&gt;1&lt;/span&gt;;&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;using&lt;/span&gt; (SqlConnection conn = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; SqlConnection(ConnectionString))&lt;br /&gt;            {&lt;br /&gt;                &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (conn.State == ConnectionState.Open)&lt;br /&gt;                {&lt;br /&gt;                    conn.Close();&lt;br /&gt;                }&lt;br /&gt;&lt;br /&gt;                &lt;span style="color: #0000ff;"&gt;using&lt;/span&gt; (SqlCommand cmd = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; SqlCommand())&lt;br /&gt;                {&lt;br /&gt;                    cmd.Connection = conn;&lt;br /&gt;                    cmd.CommandText = strSql;&lt;br /&gt;                    cmd.CommandType = CommandType.StoredProcedure;&lt;br /&gt;&lt;br /&gt;                    cmd.Parameters.AddRange(Parms);&lt;br /&gt;                    conn.Open();&lt;br /&gt;                    retcount = cmd.ExecuteNonQuery();&lt;br /&gt;                    conn.Close();&lt;br /&gt;                    cmd.Parameters.Clear();&lt;br /&gt;&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; retcount;&lt;br /&gt;        }&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;catch&lt;/span&gt; (Exception ex)&lt;br /&gt;        {&lt;br /&gt;            systemErrorLog(strSql + ex.Message);&lt;br /&gt;&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; -&lt;span style="color: #800080;"&gt;1&lt;/span&gt;;&lt;br /&gt;        }&lt;br /&gt;   &lt;br /&gt;    }&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;#endregion&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;#region&lt;/span&gt; ExecuteScalar():返回數據集第一行第一列的數據&lt;br /&gt;    &lt;br /&gt;    &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; 返回數據集第一行第一列的數據&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;param name="strSql"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;param name="Parms"&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;參數&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&lt;br /&gt;&lt;/span&gt;    &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;object&lt;/span&gt; ExecuteScalar(&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; strSql, SqlParameter[] Parms)&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;object&lt;/span&gt; retobject = &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;try&lt;/span&gt;&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;using&lt;/span&gt; (SqlConnection conn = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; SqlConnection(ConnectionString))&lt;br /&gt;            {&lt;br /&gt;                &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (conn.State == ConnectionState.Open)&lt;br /&gt;                {&lt;br /&gt;                    conn.Close();&lt;br /&gt;                }&lt;br /&gt;&lt;br /&gt;                &lt;span style="color: #0000ff;"&gt;using&lt;/span&gt; (SqlCommand cmd = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; SqlCommand())&lt;br /&gt;                {&lt;br /&gt;                    cmd.Connection = conn;&lt;br /&gt;                    cmd.CommandText = strSql;&lt;br /&gt;                    cmd.CommandType = CommandType.StoredProcedure;&lt;br /&gt;&lt;br /&gt;                    cmd.Parameters.AddRange(Parms);&lt;br /&gt;                    conn.Open();&lt;br /&gt;                    retobject = cmd.ExecuteScalar();&lt;br /&gt;                    conn.Close();&lt;br /&gt;                    cmd.Parameters.Clear();&lt;br /&gt;&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;catch&lt;/span&gt; (Exception ex)&lt;br /&gt;        {&lt;br /&gt;            systemErrorLog(strSql + ex.Message);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;            &lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; retobject;&lt;br /&gt;    }&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;#endregion&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;#region&lt;/span&gt; GetDataTable():根據sql返回一個數據表&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; 根據sql返回一個數據表&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;param name="strSql"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;param name="Parms"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&lt;br /&gt;&lt;/span&gt;    &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; DataTable GetDataTable(&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; strSql, SqlParameter[] Parms)&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;try&lt;/span&gt;&lt;br /&gt;        {&lt;br /&gt;            DataTable dt = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; DataTable();&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;using&lt;/span&gt; (SqlConnection conn = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; SqlConnection(ConnectionString))&lt;br /&gt;            {&lt;br /&gt;                &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (conn.State == ConnectionState.Open)&lt;br /&gt;                {&lt;br /&gt;                    conn.Close();&lt;br /&gt;                }&lt;br /&gt;&lt;br /&gt;                &lt;span style="color: #0000ff;"&gt;using&lt;/span&gt; (SqlCommand cmd = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; SqlCommand())&lt;br /&gt;                {&lt;br /&gt;                    cmd.Connection = conn;&lt;br /&gt;                    cmd.CommandText = strSql;&lt;br /&gt;                    cmd.CommandType = CommandType.StoredProcedure;&lt;br /&gt;&lt;br /&gt;                    cmd.Parameters.AddRange(Parms);&lt;br /&gt;                    conn.Open();&lt;br /&gt;                    SqlDataReader dr = cmd.ExecuteReader();&lt;br /&gt;                    dt.Load(dr);&lt;br /&gt;                    conn.Close();&lt;br /&gt;&lt;br /&gt;                    cmd.Parameters.Clear();&lt;br /&gt;&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; dt;&lt;br /&gt;&lt;br /&gt;        }&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;catch&lt;/span&gt; (Exception ex)&lt;br /&gt;        {&lt;br /&gt;            systemErrorLog(strSql + ex.Message);&lt;br /&gt;&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; (DataTable)&lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;;&lt;br /&gt;        }&lt;br /&gt;        &lt;br /&gt;    }&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;#endregion&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;#region&lt;/span&gt; GetDataSet():根據sql返回一個數據集&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; 根據sql返回一個數據集&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;param name="strSql"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;param name="Parms"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&lt;br /&gt;&lt;/span&gt;    &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; DataSet GetDataSet(&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; strSql, SqlParameter[] Parms)&lt;br /&gt;    {&lt;br /&gt;        &lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;try&lt;/span&gt;&lt;br /&gt;        {&lt;br /&gt;            DataSet ds = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; DataSet();&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;using&lt;/span&gt; (SqlConnection conn = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; SqlConnection(ConnectionString))&lt;br /&gt;            {&lt;br /&gt;                &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (conn.State == ConnectionState.Open)&lt;br /&gt;                {&lt;br /&gt;                    conn.Close();&lt;br /&gt;                }&lt;br /&gt;                &lt;span style="color: #0000ff;"&gt;using&lt;/span&gt; (SqlCommand cmd = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; SqlCommand())&lt;br /&gt;                {&lt;br /&gt;                    cmd.Connection = conn;&lt;br /&gt;                    cmd.CommandText = strSql;&lt;br /&gt;                    cmd.CommandTimeout = &lt;span style="color: #800080;"&gt;0&lt;/span&gt;;&lt;br /&gt;                    cmd.CommandType = CommandType.StoredProcedure;&lt;br /&gt;&lt;br /&gt;                    cmd.Parameters.AddRange(Parms);&lt;br /&gt;&lt;br /&gt;                    SqlDataAdapter da = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; SqlDataAdapter(cmd);&lt;br /&gt;&lt;br /&gt;                    da.Fill(ds);&lt;br /&gt;                    conn.Close();&lt;br /&gt;                    cmd.Parameters.Clear();&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; ds;&lt;br /&gt;        }&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;catch&lt;/span&gt;(Exception ex)&lt;br /&gt;        {&lt;br /&gt;            systemErrorLog(strSql + ex.Message);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; (DataSet)&lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;;&lt;br /&gt;        }&lt;br /&gt;        &lt;br /&gt;    }&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;#endregion&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; systemErrorLog(&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; msg)&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;sqlconn_Close();&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;        &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; filename = ConfigurationManager.AppSettings[&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;UploadFilePath&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;].ToString() + &lt;span style="color: #800000;"&gt;@"&lt;/span&gt;&lt;span style="color: #800000;"&gt;\file\log\weblog_&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt; + DateTime.Today.ToString(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;yyyyMMdd&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;) + &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;.txt&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (File.Exists(filename.Trim()))&lt;br /&gt;        {&lt;br /&gt;            StreamWriter sw = File.AppendText(filename.Trim());&lt;br /&gt;            sw.WriteLine(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;\n&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;);&lt;br /&gt;            sw.WriteLine(DateTime.Now.ToString() + msg);&lt;br /&gt;            sw.Close();&lt;br /&gt;        }&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;br /&gt;        {&lt;br /&gt;            StreamWriter sw = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; StreamWriter(filename, &lt;span style="color: #0000ff;"&gt;false&lt;/span&gt;, Encoding.UTF8);&lt;br /&gt;            sw.Write(msg);&lt;br /&gt;            sw.Close();&lt;br /&gt;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;}&lt;/pre&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;div &gt;&#xD;
&lt;pre &gt;public DataSet UserCart_List(string flag, string Guid, string UserCode, string DirectorCode, string SendNum, string paravalue)&#xD;
    {&#xD;
&#xD;
        SqlParameter[] param = new SqlParameter[]&#xD;
         {&#xD;
                        new SqlParameter("@flag",flag),&#xD;
                        new SqlParameter("@Guid",Guid),&#xD;
                        new SqlParameter("@UserCode",UserCode),&#xD;
                        new SqlParameter("@DirectorCode",DirectorCode),&#xD;
                        new SqlParameter("@SendNum",SendNum),&#xD;
                        new SqlParameter("@paravalue",paravalue)&#xD;
         };&#xD;
&#xD;
        DataTable dt = new DataTable();&#xD;
        return SQLHelper.GetDataSet("usp_BCC_Send_UserCart_List", param);&#xD;
&#xD;
&#xD;
        //try&#xD;
        //{&#xD;
        //    sqlcomm("usp_BCC_Send_UserCart_List");&#xD;
        //    mycomm.Parameters.AddWithValue("@flag", flag.Trim());&#xD;
        //    mycomm.Parameters.AddWithValue("@Guid", Guid.Trim());&#xD;
        //    mycomm.Parameters.AddWithValue("@UserCode", UserCode.Trim());&#xD;
&#xD;
        //    mycomm.Parameters.AddWithValue("@DirectorCode", DirectorCode.Trim());&#xD;
        //    mycomm.Parameters.AddWithValue("@SendNum", SendNum.Trim());&#xD;
        //    mycomm.Parameters.AddWithValue("@paravalue", paravalue.Trim());&#xD;
&#xD;
&#xD;
        //    SqlDataAdapter da = new SqlDataAdapter(mycomm);&#xD;
        //    DataSet ds = new DataSet();&#xD;
&#xD;
        //    da.Fill(ds, "DeptAssistant_List");&#xD;
&#xD;
        //    sqlconn_Close();&#xD;
        //    return ds;&#xD;
        //}&#xD;
        //catch (Exception ee)&#xD;
        //{&#xD;
        //    systemErrorLog("UserCart_List" + ee.Message);&#xD;
        //    sqlconn_Close();&#xD;
        //    return (DataSet)null;&#xD;
&#xD;
        //}&#xD;
    }&#xD;
&lt;/pre&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/Nina-piaoye/aggbug/2336473.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/Nina-piaoye/archive/2012/02/03/2336473.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/Nina-piaoye/archive/2012/01/19/2327433.html</id><title type="text">MSFT Outlook VBA处理新邮件的方法</title><summary type="text">俺们有两个邮箱，1个外部的邮箱1（outlook），1个内部邮箱0（lotus notes）。想要outlook邮箱收到新邮件之后判断一下subject的内容，如果是&amp;quot;kkk:&amp;quot;开头，则将&amp;quot;kkk:&amp;quot;后面的内容作为to发到lotus notes的邮箱里面去。测试环境（xp＋msft outlook），按alt+F11进入VBA编辑。注意要在工具 -&amp;gt; 宏 -&amp;gt; 安全性中设置为低。部分代码如下（手抄的，可能有错哦～～）：option explicitpublic WithEvents outApp as Outlook.ApplicationS</summary><published>2012-01-19T08:15:00Z</published><updated>2012-01-19T08:15:00Z</updated><author><name>Nina</name><uri>http://www.cnblogs.com/Nina-piaoye/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Nina-piaoye/archive/2012/01/19/2327433.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Nina-piaoye/archive/2012/01/19/2327433.html"/><content type="html">&lt;div id="blogDetailDiv" style="font-size: 16px;"&gt;&#xD;
&lt;p&gt;俺们有两个邮箱，1个外部的邮箱1（outlook），1个内部邮箱0（lotus notes）。想要outlook邮箱收到新邮件之后判断一下subject的内容，如果是"kkk:"开头，则将"kkk:"后面的内容作为to发到lotus notes的邮箱里面去。&lt;/p&gt;&#xD;
&lt;p&gt;测试环境（xp＋msft outlook），按alt+F11进入VBA编辑。注意要在工具 -&amp;gt; 宏 -&amp;gt; 安全性中设置为低。部分代码如下（手抄的，可能有错哦～～）：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000099;"&gt;option explicit&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000099;"&gt;public WithEvents outApp as Outlook.Application&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000099;"&gt;Sub Initialite_handle ()&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000099;"&gt;　　set outApp = Application&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000099;"&gt;End Sub&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #009933;"&gt;' 打开OutLook的时候调用，注册application引用&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000099;"&gt;private sub Application_Startup ()&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000099;"&gt;　　Initialize_handle&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000099;"&gt;End Sub&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #009900;"&gt;'注意函数命名，收到新邮件的时候自动调用&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000099;"&gt;Private sub outApp_NewMailEx (ByVal EntryIDCollection As String)&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000099;"&gt;　　Dim mai As Object&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000099;"&gt;　　Dim intInitial As Integer&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000099;"&gt;　　Dim intFinal As Integer&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000099;"&gt;　　Dim strEntry As String&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000099;"&gt;　　Dim intLength As Integer&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000099;"&gt;　　intInitial - 1&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000099;"&gt;　　intLength = Len(EntryIDCollection)&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000099;"&gt;　　intFinal = InStr(intInitial, EntryIDCollection, ",")&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000099;"&gt;　　Do While intFinal &amp;lt;&amp;gt; 0 &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000099;"&gt;　　　　strEntryID = Stringmid(EntryIDCollection, intInitial, (intFinal - intInitial))&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000099;"&gt;　　　　set mai = Application.Session.GetItemFromID(strEntryID)&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000099;"&gt;　　　　newmail_proc mai&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000099;"&gt;　　　　intInitial = intFinal +1 &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000099;"&gt;　　　　intFinal = inStr(intInitial, EntryIDCollection, ",")&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000099;"&gt;　　Loop&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000099;"&gt;　　strEntryID = String.mid(EntryIDCollection, intInitial, (intLength - intInitial)+1)&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000099;"&gt;　　set mai = Application.Session.GetItemFromID(strEntryID)&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000099;"&gt;　　newmail_proc mai&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000099;"&gt;End Sub&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000099;"&gt;private sub newmail_proc (ByVal mai As Object)&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000099;"&gt;　　Dim itm As Object&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000099;"&gt;　　Dim result As Integer&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000099;"&gt;　　Dim str_kkk As String&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000099;"&gt;　　Dim str_subject As String&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000099;"&gt;　　Dim len_subject As Integer&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000099;"&gt;　　Dim str_body As String&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000099;"&gt;　　Dim str_reception As String&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000099;"&gt;　　str_subject = mai.subject&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000099;"&gt;　　len_subject = Len(str_subject)&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000099;"&gt;　　str_kkk = String.mai(str_subject, 1, 4)&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000099;"&gt;　　result = String.strComp(str_kkk, "kkk:", vbTextComare)&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000099;"&gt;　　if result &amp;lt;&amp;gt; 0 then&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000099;"&gt;　　Else&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000099;"&gt;　　　　String_reception = String.mid(str_subject, 5, (len_subject-4)+1)&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000099;"&gt;　　　　str_body = mai.body&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000099;"&gt;　　　　set Itm = outApp.CreateItem(0)&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000099;"&gt;　　　　with Itm&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000099;"&gt;　　　　　　.subject = "new mail from a@a.com"&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000099;"&gt;　　　　　　.to = str_reception&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000099;"&gt;　　　　　　.body = str_body&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000099;"&gt;　　　　　　.send&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000099;"&gt;　　　　End With&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000099;"&gt;　　End if&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000099;"&gt;End Sub&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;/div&gt;&lt;img src="http://www.cnblogs.com/Nina-piaoye/aggbug/2327433.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/Nina-piaoye/archive/2012/01/19/2327433.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/Nina-piaoye/archive/2012/01/19/2327428.html</id><title type="text">在Outlook中用VBA导出HTML格式邮件</title><summary type="text">我每天所收到的e-mail中，订阅的电子杂志占了很大的比例。其中既有新闻也有电脑技术或娱乐性文章，加在一起竟有上百封。后来我知道单位里许多人同我一样也喜欢看，而且有的人还订了同样的杂志，所以我就每天收到邮件后把它们整理到局域网上去。只是这么多的邮件，整理起来工作量可不小，怎么解决一下呢？ 这些邮件通常都是HTML格式的，用Outlook通常的方法不能正确的导出，而且分布在许多下层子夹中，导出很麻烦。我在OUTLOOK中，用VBA实现了HTML邮件导出并自动发布到网络上。 要对邮件箱里的邮件进行操作，首先要取得Outlook MAPI名字空间。可以使用下面的语句： Dim mobjO...</summary><published>2012-01-19T08:14:00Z</published><updated>2012-01-19T08:14:00Z</updated><author><name>Nina</name><uri>http://www.cnblogs.com/Nina-piaoye/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Nina-piaoye/archive/2012/01/19/2327428.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Nina-piaoye/archive/2012/01/19/2327428.html"/><content type="html">&lt;p&gt;我每天所收到的e-mail中，订阅的电子杂志占了很大的比例。其中既有新闻也有电脑技术或娱乐性文章，加在一起竟有上百封。后来我知道单位里许多人同我一样也喜欢看，而且有的人还订了同样的杂志，所以我就每天收到邮件后把它们整理到局域网上去。只是这么多的邮件，整理起来工作量可不小，怎么解决一下呢？&lt;/p&gt;&#xD;
&lt;p&gt;这些邮件通常都是HTML格式的，用Outlook通常的方法不能正确的导出，而且分布在许多下层子夹中，导出很麻烦。我在OUTLOOK中，用VBA实现了HTML邮件导出并自动发布到网络上。&lt;/p&gt;&#xD;
&lt;p&gt;要对邮件箱里的邮件进行操作，首先要取得Outlook MAPI名字空间。可以使用下面的语句：&lt;/p&gt;&#xD;
&lt;p&gt;Dim mobjOutlook As Outlook.NameSpace&lt;/p&gt;&#xD;
&lt;p&gt;Dim objOutlook As New Outlook.Application&lt;/p&gt;&#xD;
&lt;p&gt;mobjOutlook=objoutlook.GetNameSpace(&amp;ldquo;MAPI&amp;rdquo;)&lt;/p&gt;&#xD;
&lt;p&gt;用mobjOutlook的GetDefaultFolder方法。可以取得收件箱的MAPIFolder对象：&lt;/p&gt;&#xD;
&lt;p&gt;Dim objFolder As Outlook.MAPIFolder&lt;/p&gt;&#xD;
&lt;p&gt;ObjFolder=mobjOutlook.GetDefaultFolder(6)&lt;/p&gt;&#xD;
&lt;p&gt;其中参数6代表收件箱，其他参数的意义如下表：&lt;/p&gt;&#xD;
&lt;table border="1" cellspacing="0" cellpadding="0"&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td valign="top" width="180"&gt;&#xD;
&lt;p&gt;常量&lt;/p&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;td valign="top" width="132"&gt;&#xD;
&lt;p&gt;数值&lt;/p&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;td valign="top" width="156"&gt;&#xD;
&lt;p&gt;描述&lt;/p&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td valign="top" width="180"&gt;&#xD;
&lt;p&gt;OlFolderDeletedItems&lt;/p&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;td valign="top" width="132"&gt;&#xD;
&lt;p&gt;3&lt;/p&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;td valign="top" width="156"&gt;&#xD;
&lt;p&gt;已删除邮件&lt;/p&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td valign="top" width="180"&gt;&#xD;
&lt;p&gt;OlFolderOutbox&lt;/p&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;td valign="top" width="132"&gt;&#xD;
&lt;p&gt;4&lt;/p&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;td valign="top" width="156"&gt;&#xD;
&lt;p&gt;发件箱&lt;/p&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td valign="top" width="180"&gt;&#xD;
&lt;p&gt;OlFolderSentMail&lt;/p&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;td valign="top" width="132"&gt;&#xD;
&lt;p&gt;5&lt;/p&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;td valign="top" width="156"&gt;&#xD;
&lt;p&gt;已发件邮件&lt;/p&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td valign="top" width="180"&gt;&#xD;
&lt;p&gt;olFolderInbox&lt;/p&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;td valign="top" width="132"&gt;&#xD;
&lt;p&gt;6&lt;/p&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;td valign="top" width="156"&gt;&#xD;
&lt;p&gt;收件箱&lt;/p&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td valign="top" width="180"&gt;&#xD;
&lt;p&gt;OlFolderCalendar&lt;/p&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;td valign="top" width="132"&gt;&#xD;
&lt;p&gt;9&lt;/p&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;td valign="top" width="156"&gt;&#xD;
&lt;p&gt;日历&lt;/p&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td valign="top" width="180"&gt;&#xD;
&lt;p&gt;OlFolderContacts&lt;/p&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;td valign="top" width="132"&gt;&#xD;
&lt;p&gt;10&lt;/p&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;td valign="top" width="156"&gt;&#xD;
&lt;p&gt;联系人&lt;/p&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td valign="top" width="180"&gt;&#xD;
&lt;p&gt;olFolderJournal&lt;/p&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;td valign="top" width="132"&gt;&#xD;
&lt;p&gt;11&lt;/p&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;td valign="top" width="156"&gt;&#xD;
&lt;p&gt;日记&lt;/p&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td valign="top" width="180"&gt;&#xD;
&lt;p&gt;olFolderNotes&lt;/p&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;td valign="top" width="132"&gt;&#xD;
&lt;p&gt;12&lt;/p&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;td valign="top" width="156"&gt;&#xD;
&lt;p&gt;便笺&lt;/p&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td valign="top" width="180"&gt;&#xD;
&lt;p&gt;olFolderTasks&lt;/p&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;td valign="top" width="132"&gt;&#xD;
&lt;p&gt;13&lt;/p&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;td valign="top" width="156"&gt;&#xD;
&lt;p&gt;任务&lt;/p&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td valign="top" width="180"&gt;&#xD;
&lt;p&gt;olFolderDrafts&lt;/p&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;td valign="top" width="132"&gt;&#xD;
&lt;p&gt;16&lt;/p&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;td valign="top" width="156"&gt;&#xD;
&lt;p&gt;草稿&lt;/p&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;/tbody&gt;&#xD;
&lt;/table&gt;&#xD;
&lt;p&gt;在objFolder的属性包含邮件项集合即ITEMS，也包含所有下一级子夹的集合Folders。&lt;/p&gt;&#xD;
&lt;p&gt;对每一个邮件，首先取得邮件的接收时间，如果是当天收到的就创建并打开一个HTML文件，以其主题Subject为文件名，把它的HTML格式的内容，即HTMLBody属性的值写入这个文件，然后关闭并处理下一个。&lt;/p&gt;&#xD;
&lt;p&gt;对下一级子夹，用递归调用的方式，可以遍历收件箱中每一层夹中的所有邮件。在生成邮件文件时，还同时生成索引文件。&lt;/p&gt;&#xD;
&lt;p&gt;完整的程序如下：&lt;/p&gt;&#xD;
&lt;p&gt;Private mobjOutlook As Outlook.NameSpace&lt;/p&gt;&#xD;
&lt;p&gt;Private fs, fo&lt;/p&gt;&#xD;
&lt;p&gt;Private Sub GetOutlook()&lt;/p&gt;&#xD;
&lt;p&gt;Dim objOutlook As New Outlook.Application&lt;/p&gt;&#xD;
&lt;p&gt;Set mobjOutlook = objOutlook.GetNamespace("MAPI")&lt;/p&gt;&#xD;
&lt;p&gt;End Sub&lt;/p&gt;&#xD;
&lt;p&gt;Sub ListMailFolders(objFolder As Outlook.MAPIFolder)&lt;/p&gt;&#xD;
&lt;p&gt;Dim objItem As Object&lt;/p&gt;&#xD;
&lt;p&gt;Dim f&lt;/p&gt;&#xD;
&lt;p&gt;Dim str1, str2, str3 As String&lt;/p&gt;&#xD;
&lt;p&gt;For Each objItem In objFolder.Items&lt;/p&gt;&#xD;
&lt;p&gt;If (FormatDateTime(objItem.ReceivedTime, vbShortDate) = FormatDateTime(Date, vbShortDate)) Then&lt;/p&gt;&#xD;
&lt;p&gt;str2 = objItem.Subject&lt;/p&gt;&#xD;
&lt;p&gt;str1 = "j:wwwrootnews" + str2 + ".htm"&lt;/p&gt;&#xD;
&lt;p&gt;Set f = fs.OpenTextFile(str1, 2, True, TristateFalse)&lt;/p&gt;&#xD;
&lt;p&gt;f.Write objItem.HTMLBody&lt;/p&gt;&#xD;
&lt;p&gt;f.Close&lt;/p&gt;&#xD;
&lt;p&gt;str3 = "&amp;lt; p&amp;gt;&amp;lt; a href='" + objItem.Subject + ".htm'&amp;gt;" + objItem.Subject + "&amp;lt; /a&amp;gt;&amp;lt; /p&amp;gt; "&lt;/p&gt;&#xD;
&lt;p&gt;fo.Write str3&lt;/p&gt;&#xD;
&lt;p&gt;End If&lt;/p&gt;&#xD;
&lt;p&gt;Next&lt;/p&gt;&#xD;
&lt;p&gt;Dim objf As Outlook.MAPIFolder&lt;/p&gt;&#xD;
&lt;p&gt;For Each objf In objFolder.Folders&lt;/p&gt;&#xD;
&lt;p&gt;ListMailFolders objf&lt;/p&gt;&#xD;
&lt;p&gt;Next&lt;/p&gt;&#xD;
&lt;p&gt;Set objItem = Nothing&lt;/p&gt;&#xD;
&lt;p&gt;End Sub&lt;/p&gt;&#xD;
&lt;p&gt;Sub ListMailItems(longFolder As Long)&lt;/p&gt;&#xD;
&lt;p&gt;Dim objFolder As Outlook.MAPIFolder&lt;/p&gt;&#xD;
&lt;p&gt;Dim f&lt;/p&gt;&#xD;
&lt;p&gt;If mobjOutlook Is Nothing Then&lt;/p&gt;&#xD;
&lt;p&gt;GetOutlook&lt;/p&gt;&#xD;
&lt;p&gt;End IF&lt;/p&gt;&#xD;
&lt;p&gt;Set objFolder = mobjOutlook.GetDefaultFolder(longFolder)&lt;/p&gt;&#xD;
&lt;p&gt;ListMailFolders objFolder&lt;/p&gt;&#xD;
&lt;p&gt;End Sub&lt;/p&gt;&#xD;
&lt;p&gt;Private Sub storemail()&lt;/p&gt;&#xD;
&lt;p&gt;Set fs=CreateObject(&amp;ldquo;Scripting.FileSystemObject&amp;rdquo;)&lt;/p&gt;&#xD;
&lt;p&gt;Set fo=fs.OpenTextFile(&amp;ldquo;j:wwwrootnewsindex.html&amp;rdquo;,2,True,TristateFalse)&lt;/p&gt;&#xD;
&lt;p&gt;fo.Write &amp;ldquo;&amp;lt; HTML&amp;gt;&amp;lt; HEAD&amp;gt;&amp;lt; META content=&amp;rsquo;text/html; charset=gb2312&amp;rsquo; http-equiv=Content-Type&amp;gt; &amp;lt; TITLE&amp;gt;&amp;lt; /TITLE&amp;gt;&amp;lt; /HEAD&amp;gt;&amp;lt; BODY&amp;gt;&lt;/p&gt;&#xD;
&lt;p&gt;ListMailItems(6)&lt;/p&gt;&#xD;
&lt;p&gt;fo.Write &amp;ldquo;&amp;lt; /BODY&amp;gt;&amp;lt; /HTML&amp;gt;&amp;rdquo;&lt;/p&gt;&#xD;
&lt;p&gt;fo.Close&lt;/p&gt;&#xD;
&lt;p&gt;End Sub&lt;/p&gt;&#xD;
&lt;p&gt;在Outlook2000中创建一个新的宏，用VB编辑器编辑它，把上面的程序拷贝到同一模块，注意把生成文件的目录名改为自己WEB服务器上的WWW服务根文件夹名。在宏中调用storemail，执行宏，就可以导出当天收到的所有邮件。&lt;/p&gt;&#xD;
&lt;p&gt;所有指向这些HTML文件的链接放在同一目录下的index.html中，这样每个人都可以在网上浏览这些文章了。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/Nina-piaoye/aggbug/2327428.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/Nina-piaoye/archive/2012/01/19/2327428.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/Nina-piaoye/archive/2011/05/05/2037496.html</id><title type="text">在 Visual Basic 或從 ASP 的 Microsoft Access &amp;amp; VBScript VBA</title><summary type="text">Dim Conn1 As ADODB.Connection Dim Cmd1 As ADODB.Command Dim Rs1 As ADODB.Recordset Dim strTmp As String Dim Connect As String Dim Drop As String Dim Create As String Dim sp as string Dim i As Integer Dim l As Long sConnect= &amp;quot;driver={sql server};&amp;quot; &amp;amp;amp; _ &amp;quot;server=server_name;&amp;quot;</summary><published>2011-05-05T04:37:00Z</published><updated>2011-05-05T04:37:00Z</updated><author><name>Nina</name><uri>http://www.cnblogs.com/Nina-piaoye/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Nina-piaoye/archive/2011/05/05/2037496.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Nina-piaoye/archive/2011/05/05/2037496.html"/><content type="html">&lt;pre &gt;Dim Conn1 As ADODB.Connection&#xD;
   Dim Cmd1 As ADODB.Command&#xD;
   Dim Rs1 As ADODB.Recordset&#xD;
&#xD;
&#xD;
   Dim strTmp As String&#xD;
&#xD;
&#xD;
   Dim Connect As String&#xD;
   Dim Drop As String&#xD;
   Dim Create As String&#xD;
   Dim sp as string&#xD;
&#xD;
&#xD;
   Dim i As Integer&#xD;
   Dim l As Long&#xD;
&#xD;
&#xD;
   sConnect= "driver={sql server};" &amp;amp;amp; _&#xD;
&#xD;
&#xD;
             "server=server_name;" &amp;amp;amp; _&#xD;
             "Database=pubs;UID=uder_id;PWD=password;"&#xD;
&#xD;
&#xD;
   sCreate = "create proc sp_AdoTest( @InParam int, " &amp;amp;amp; _&#xD;
&#xD;
&#xD;
             "@OutParam int OUTPUT ) " &amp;amp;amp; _&#xD;
             "as "  &amp;amp;amp; _&#xD;
             "select @OutParam = @InParam + 10 " &amp;amp;amp; _&#xD;
             "SELECT * FROM Authors WHERE "   &amp;amp;amp; _&#xD;
             "State &amp;lt;&amp;gt; 'CA' "  &amp;amp;amp; _&#xD;
             "return @OutParam +10"&#xD;
&#xD;
&#xD;
   sDrop   = "if exists "  &amp;amp;amp; _&#xD;
&#xD;
&#xD;
             "(select * from sysobjects where "  &amp;amp;amp; _&#xD;
             "id = object_id('dbo.sp_AdoTest') and " &amp;amp;amp; _&#xD;
             "sysstat &amp;amp;amp; 0xf = 4)"  &amp;amp;amp; _&#xD;
             "drop procedure dbo.sp_AdoTest"&#xD;
&#xD;
&#xD;
   sSP     = "sp_Adotest"&#xD;
&#xD;
&#xD;
   ' Establish connection.&#xD;
   Set Conn1 = New ADODB.Connection&#xD;
   Conn1.ConnectionString = sConnect&#xD;
   Conn1.Open&#xD;
&#xD;
&#xD;
   ' Drop procedure, if it exists &amp;amp;amp; recreate it.&#xD;
   Set Rs1 = Conn1.Execute(sDrop, l, adCmdText)&#xD;
   Set Rs1 = Nothing&#xD;
&#xD;
&#xD;
   Set Rs1 = Conn1.Execute(sCreate, l, adCmdText)&#xD;
   Set Rs1 = Nothing&#xD;
&#xD;
&#xD;
   ' Open recordset.&#xD;
   Set Cmd1 = New ADODB.Command&#xD;
   Cmd1.ActiveConnection = Conn1&#xD;
   Cmd1.CommandText = "sp_AdoTest"&#xD;
   Cmd1.CommandType = adCmdStoredProc&#xD;
   Cmd1.Parameters.Refresh&#xD;
   Cmd1.Parameters(1).Value = 10&#xD;
   Set Rs1 = Cmd1.Execute()&#xD;
&#xD;
&#xD;
   ' Process results from recordset, then close it.&#xD;
   RS1.Close&#xD;
   Set Rs1 = Nothing&#xD;
&#xD;
&#xD;
   ' Get parameters (assumes you have a list box named List1).&#xD;
&#xD;
&#xD;
   Debug.print vbTab &amp;amp;amp; "RetVal Param = " &amp;amp;amp; Cmd1.Parameters(0).Value&#xD;
   Debug.print vbTab &amp;amp;amp; "Input  Param = " &amp;amp;amp; Cmd1.Parameters(1).Value&#xD;
   Debug.print vbTab &amp;amp;amp; "Output Param = " &amp;amp;amp; Cmd1.Parameters(2).Value&#xD;
				&lt;/pre&gt;&lt;img src="http://www.cnblogs.com/Nina-piaoye/aggbug/2037496.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/Nina-piaoye/archive/2011/05/05/2037496.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/Nina-piaoye/archive/2011/01/28/1946614.html</id><title type="text">读取PDF的文字--zt</title><summary type="text">1.下载PDFBox 0.7.3sourceforge.net/project/showfiles.php2.复制并加载如下5个DLL文件到bin目录下面IKVM.GNU.Classpath.dllPDFBox-0.7.3.dllFontBox-0.1.0-dev.dllIKVM.Runtime.dllbcprov-jdk14-132.dll</summary><published>2011-01-28T01:17:00Z</published><updated>2011-01-28T01:17:00Z</updated><author><name>Nina</name><uri>http://www.cnblogs.com/Nina-piaoye/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Nina-piaoye/archive/2011/01/28/1946614.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Nina-piaoye/archive/2011/01/28/1946614.html"/><content type="html">&lt;p&gt;&lt;span style="font-family: Arial; line-height: 20px; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: normal;"&gt;&lt;span style="line-height: normal; font-size: small;" size="3"&gt;1.下载PDFBox 0.7.3&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a style="color: #002280; text-decoration: none; line-height: normal;" href="http://sourceforge.net/project/showfiles.php?group_id=78314" target="_blank"&gt;sourceforge.net/project/showfiles.php&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: normal;"&gt;&lt;span style="line-height: normal; font-size: small;" size="3"&gt;2.复制并加载如下5个DLL文件到bin目录下面&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;li style="line-height: normal; margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 0cm;" &gt;&lt;span style="line-height: normal; font-size: 10pt;"&gt;IKVM.GNU.Classpath.dll&lt;/span&gt;&lt;/li&gt;&#xD;
&lt;li style="line-height: normal; margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 0cm;" &gt;&lt;span style="line-height: normal; font-size: 10pt;"&gt;PDFBox-0.7.3.dll&lt;/span&gt;&lt;/li&gt;&#xD;
&lt;li style="line-height: normal; margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 0cm;" &gt;&lt;span style="line-height: normal; font-size: 10pt;"&gt;FontBox-0.1.0-dev.dll&lt;/span&gt;&lt;/li&gt;&#xD;
&lt;li style="line-height: normal; margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 0cm;" &gt;&lt;span style="line-height: normal; font-size: 10pt;"&gt;IKVM.Runtime.dll&lt;/span&gt;&lt;/li&gt;&#xD;
&lt;li style="line-height: normal; margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 0cm;" &gt;&lt;span style="line-height: normal; font-size: 10pt;"&gt;&lt;span style="line-height: normal; font-size: small;" size="3"&gt;bcprov-jdk14-132.dll&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&#xD;
&lt;li style="line-height: normal; margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 0cm;" &gt;&lt;span style="color: #0000ff; font-size: small;" size="3" color="#0000FF"&gt;&lt;span style="font-size: 13px;"&gt;&#xD;
&lt;div &gt;&#xD;
&lt;pre &gt;using System;&#xD;
using org.pdfbox.pdmodel;&#xD;
using org.pdfbox.util;&#xD;
namespace PDFReader&#xD;
{&#xD;
    class Program&#xD;
    {&#xD;
        static void Main(string[] args)&#xD;
        {&#xD;
            PDDocument doc = PDDocument.load("lopreacamasa.pdf");&#xD;
            PDFTextStripper pdfStripper = new PDFTextStripper();&#xD;
            Console.Write(pdfStripper.getText(doc));&#xD;
        }&#xD;
    }&#xD;
}&#xD;
&lt;/pre&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;img src="http://www.cnblogs.com/Nina-piaoye/aggbug/1946614.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/Nina-piaoye/archive/2011/01/28/1946614.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/Nina-piaoye/archive/2011/01/28/1946607.html</id><title type="text">PdfSharp.dll 更改pdf 設置 如不能複製，列印等</title><summary type="text">下載并引用PdfSharp.dllusing PdfSharp.Pdf;using System.IO;</summary><published>2011-01-28T00:55:00Z</published><updated>2011-01-28T00:55:00Z</updated><author><name>Nina</name><uri>http://www.cnblogs.com/Nina-piaoye/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Nina-piaoye/archive/2011/01/28/1946607.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Nina-piaoye/archive/2011/01/28/1946607.html"/><content type="html">&lt;p&gt;下載并引用PdfSharp.dll&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;using PdfSharp.Pdf;&lt;/p&gt;&#xD;
&lt;p&gt;using System.IO;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;div &gt;&#xD;
&lt;pre &gt;public string PDFSecurity(string strSourcePDFFile, string strDestPDFFile, bool AddUserPassword, string strPassword)&#xD;
        {&#xD;
&#xD;
            try&#xD;
            {&#xD;
&#xD;
                PdfSharp.Pdf.PdfDocument pdfsourcedoc = PdfSharp.Pdf.IO.PdfReader.Open(strSourcePDFFile, PdfSharp.Pdf.IO.PdfDocumentOpenMode.Modify);&#xD;
&#xD;
                pdfsourcedoc.SecuritySettings.DocumentSecurityLevel = PdfSharp.Pdf.Security.PdfDocumentSecurityLevel.Encrypted128Bit;&#xD;
&#xD;
                pdfsourcedoc.SecuritySettings.OwnerPassword = "adamtest";&#xD;
&#xD;
                pdfsourcedoc.SecuritySettings.PermitAccessibilityExtractContent = false;&#xD;
&#xD;
                pdfsourcedoc.SecuritySettings.PermitAnnotations = false;&#xD;
&#xD;
                pdfsourcedoc.SecuritySettings.PermitAssembleDocument = false;&#xD;
&#xD;
                pdfsourcedoc.SecuritySettings.PermitExtractContent = false;&#xD;
&#xD;
                pdfsourcedoc.SecuritySettings.PermitFormsFill = false;&#xD;
&#xD;
                pdfsourcedoc.SecuritySettings.PermitFullQualityPrint = false;&#xD;
&#xD;
                pdfsourcedoc.SecuritySettings.PermitModifyDocument = false;&#xD;
&#xD;
                pdfsourcedoc.SecuritySettings.PermitPrint = false;&#xD;
&#xD;
                if (AddUserPassword == true)&#xD;
                {&#xD;
&#xD;
                    pdfsourcedoc.SecuritySettings.UserPassword = strPassword;&#xD;
&#xD;
                }&#xD;
&#xD;
                pdfsourcedoc.Save(strDestPDFFile);&#xD;
&#xD;
                return "";&#xD;
&#xD;
            }&#xD;
&#xD;
            catch (Exception ex)&#xD;
            {&#xD;
&#xD;
                return ex.ToString();&#xD;
&#xD;
            }&#xD;
        &#xD;
        }&#xD;
&lt;/pre&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/Nina-piaoye/aggbug/1946607.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/Nina-piaoye/archive/2011/01/28/1946607.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/Nina-piaoye/archive/2011/01/27/1946363.html</id><title type="text">PDF元件 PDFBox --zt</title><summary type="text">需求:1. 從pdf裏截取出文字.2. 產生pdf的縮圖或許你知道的是ITextSharp，不過 ITextSharp的主要是"產生"pdf，他在讀取pdf方面是不大行的(我實在搞不懂他的PdfReader要怎麼用)PDFBox 是用 java開發的，但他有特意搭配 IKVM(一個讓java的類別可對應到.net的library) ，讓你在.net 上也可以順利使用。總共要加入參考5個dll，IKVM的dll，下載PDFBox裏面就有了PDFBox-0.7.3.dllIKVM.Runtime.dllIKVM.GNU.Classpath.dllIKVM.AWT.WinForms.dllFontB</summary><published>2011-01-27T09:00:00Z</published><updated>2011-01-27T09:00:00Z</updated><author><name>Nina</name><uri>http://www.cnblogs.com/Nina-piaoye/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Nina-piaoye/archive/2011/01/27/1946363.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Nina-piaoye/archive/2011/01/27/1946363.html"/><content type="html">&lt;p&gt;&lt;span style="font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; line-height: normal;"&gt;&#xD;
&lt;p style="margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px;"&gt;需求:&amp;nbsp;&lt;br /&gt;1. 從pdf裏截取出文字.&amp;nbsp;&lt;br /&gt;2. 產生pdf的縮圖&lt;/p&gt;&#xD;
&lt;p style="margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px;"&gt;或許你知道的是ITextSharp，不過 ITextSharp的主要是"產生"pdf，他在讀取pdf方面是不大行的(我實在搞不懂他的PdfReader要怎麼用)&lt;/p&gt;&#xD;
&lt;p style="margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px;"&gt;PDFBox 是用 java開發的，但他有特意搭配 IKVM(一個讓java的類別可對應到.net的library) ，讓你在.net 上也可以順利使用。&lt;/p&gt;&#xD;
&lt;p style="margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px;"&gt;總共要加入參考5個dll，IKVM的dll，下載PDFBox裏面就有了&lt;br /&gt;PDFBox-0.7.3.dll&lt;br /&gt;IKVM.Runtime.dll&lt;br /&gt;IKVM.GNU.Classpath.dll&lt;br /&gt;IKVM.AWT.WinForms.dll&lt;br /&gt;FontBox-0.1.0-dev.dll&lt;/p&gt;&#xD;
&lt;p style="margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px;"&gt;網址&amp;nbsp;&lt;a style="color: #0000ff; text-decoration: none;" href="http://www.pdfbox.org/"&gt;http://www.pdfbox.org/&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p style="margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px;"&gt;那我先從轉換文字檔的部份先試起，還蠻慢的，或許是我選了一個8MB的pdf關係吧，不過可以順利轉喔。&lt;/p&gt;&#xD;
&lt;p style="margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px;"&gt;&lt;/p&gt;&#xD;
&lt;pre&gt;&lt;span style="color: #808080;"&gt;/// &lt;summary&gt;&lt;/summary&gt;&lt;/span&gt;&#xD;
    &lt;span style="color: #808080;"&gt;/// 將 PDF 檔轉換成文字檔&lt;/span&gt;&#xD;
    &lt;span style="color: #808080;"&gt;/// &lt;/span&gt;&#xD;
    &lt;span style="color: #808080;"&gt;/// &lt;/span&gt;&#xD;
    &lt;span style="color: #808080;"&gt;/// &lt;/span&gt;&#xD;
    &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; PdfToText(&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; pdfFile, &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; txtFile) {&#xD;
        PDDocument doc = PDDocument.load(pdfFile);&#xD;
        PDFTextStripper stripper = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; PDFTextStripper();&#xD;
        &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; str = stripper.getText(doc);&#xD;
        StreamWriter sw = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; StreamWriter(txtFile);&#xD;
        sw.WriteLine("&lt;span style="color: #8b0000;"&gt;作者:&lt;/span&gt;" + doc.getDocumentInformation().getAuthor());&#xD;
        sw.WriteLine("&lt;span style="color: #8b0000;"&gt;標題:&lt;/span&gt;" + doc.getDocumentInformation().getTitle());&#xD;
        sw.WriteLine(str);&#xD;
        sw.Close();&#xD;
    }&lt;/pre&gt;&#xD;
&lt;p style="margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px;"&gt;接下來才是我真的想要的，將PDF的第1頁，轉換成縮圖，放在網頁當索引，&lt;br /&gt;可是... 當我按圖索code操作時， 他很爽快的丟出 exception給我「type not implemented yet 」&lt;br /&gt;哎..是誰 是誰搞的鬼啊，是PDFBox? 是IKVM? 還是我??&lt;br /&gt;好吧，慢慢追，PDFBox雖然說 convertToImage 目前還在beta階段，但是PdPage.java底下，的確有該段code，&lt;br /&gt;而且"看起來"也很合理(其實java我看不大懂:p)。&lt;br /&gt;那他在初始BufferedImage是出了什麼問題? 接下來往IKVM 裏面追，這時就該&amp;nbsp;&lt;a style="color: #0000ff; text-decoration: none;" href="http://www.aisto.com/roeder/dotnet/"&gt;.Net Refactor&lt;/a&gt;&amp;nbsp;出動啦&lt;br /&gt;(因為我沒下載ikvm的原始碼啦，這時也懶的下載了)，挖出傢伙挖開IKVM.GNU.Classpath.dll來瞧瞧。&lt;br /&gt;&lt;img src="http://blog.blueshop.com.tw/images/blog_blueshop_com_tw/uni2tw/1556/r_PDFBox01.jpg" /&gt;&amp;nbsp;&lt;br /&gt;BufferedImage裏面 有一種type 還沒實作@@, 而且就是PDFBox 要用的那種(TYPE_BYTE_INDEXED) -_-|||，&lt;br /&gt;好吧，我的好奇心告一段落，我要等下個版本的IKVM，看會不會實作這，或是PDFBox改成用別種Image型態....&lt;/p&gt;&#xD;
&lt;p style="margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px;"&gt;底下是失敗的程式碼&lt;/p&gt;&#xD;
&lt;pre&gt;&lt;span style="color: #808080;"&gt;/// &lt;summary&gt;&lt;/summary&gt;&lt;/span&gt;&#xD;
    &lt;span style="color: #808080;"&gt;///  將 PDF 轉換成 JPG 圖片&lt;/span&gt;&#xD;
    &lt;span style="color: #808080;"&gt;/// &lt;/span&gt;&#xD;
    &lt;span style="color: #808080;"&gt;/// &lt;/span&gt;&#xD;
    &lt;span style="color: #808080;"&gt;/// &lt;/span&gt;&#xD;
    &lt;span style="color: #808080;"&gt;/// &lt;/span&gt;第幾頁&#xD;
    &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; PdfToJpg(&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; pdfFile,&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; jpgFile,&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; pageIndex) {&#xD;
        PDDocument doc = PDDocument.load(pdfFile);&#xD;
        java.util.List pages = doc.getDocumentCatalog().getAllPages();&#xD;
        &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (pages.size() &amp;gt; 0) {&#xD;
            PDPage page = (PDPage)pages.&lt;span style="color: #0000ff;"&gt;get&lt;/span&gt;(pageIndex);&#xD;
            BufferedImage image = page.convertToImage();&#xD;
            java.awt.Graphics gc = image.getGraphics();&#xD;
            Bitmap bitmap = ((ikvm.awt.NetGraphics)gc).getBitmap();&#xD;
            bitmap.Save(jpgFile);&#xD;
        }&#xD;
    }&lt;/pre&gt;&#xD;
&lt;pre&gt;殘念...&lt;/pre&gt;&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/Nina-piaoye/aggbug/1946363.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/Nina-piaoye/archive/2011/01/27/1946363.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/Nina-piaoye/archive/2011/01/27/1946258.html</id><title type="text">用 iTextSharp 修改 PDF 文件的属性--》只能看，不能复制，列印</title><summary type="text">using iTextSharp.text;using iTextSharp.text.pdf;public void pdfreadonly(string pdfname) { string pdfFile = pdfname;// "d:\\sample.pdf"; //把文件读入内存可立即释放文件句柄，方便信息覆盖原文件 PdfReader reader = new PdfReader(File.ReadAllBytes(pdfFile)); //获取到本文件的 MetaData 信息 Dictionary&amp;lt;string, string&amp;gt; info = reader.Info; read</summary><published>2011-01-27T07:21:00Z</published><updated>2011-01-27T07:21:00Z</updated><author><name>Nina</name><uri>http://www.cnblogs.com/Nina-piaoye/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Nina-piaoye/archive/2011/01/27/1946258.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Nina-piaoye/archive/2011/01/27/1946258.html"/><content type="html">&lt;p&gt;&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;p&gt;using iTextSharp.text;&lt;/p&gt;&#xD;
&lt;p&gt;using iTextSharp.text.pdf;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;p&gt;public void pdfreadonly(string pdfname)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;string pdfFile = pdfname;// "d:\\sample.pdf";&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;//把文件读入内存可立即释放文件句柄，方便信息覆盖原文件&lt;/p&gt;&#xD;
&lt;p&gt;PdfReader reader = new PdfReader(File.ReadAllBytes(pdfFile));&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;//获取到本文件的 MetaData 信息&lt;/p&gt;&#xD;
&lt;p&gt;Dictionary&amp;lt;string, string&amp;gt; info = reader.Info;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;reader.Close();&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;//覆盖掉原 PDF 文件中&lt;/p&gt;&#xD;
&lt;p&gt;PdfStamper stamper = new PdfStamper(reader, new FileStream(pdfFile, FileMode.Create, FileAccess.Write));&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;stamper.MoreInfo = info;&lt;/p&gt;&#xD;
&lt;p&gt;stamper.SetEncryption(PdfWriter.STRENGTH40BITS, null, null, PdfWriter.AllowScreenReaders);&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;stamper.Close();&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;div&gt;&lt;/div&gt;&#xD;
&lt;/p&gt;&lt;img src="http://www.cnblogs.com/Nina-piaoye/aggbug/1946258.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/Nina-piaoye/archive/2011/01/27/1946258.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/Nina-piaoye/archive/2011/01/26/1945650.html</id><title type="text">HTML转PDF（C#---itextsharp--zt</title><summary type="text">一、 需求：将HTML转PDF打印。Web项目中总是有这样的需求，很是让人苦恼。二、 分析：如何完成这个工作？1、 需要解析HTML，然后利用itextsharp绘制pdf文档。解析HTML是一个很难完成的任务，各个浏览器对HTML的解析五花八门就知道这不好解决。这条路不好走，但也是可以完成的，通过webbrowser类可以解析HTML获取各对象的位置，然后绘制到pdf中。方法是可行，其中的复杂度不小。2、 将HTML保存为图片，然后插入到pdf文档中，这里将介绍这种方法。随之而来的问题：如何将HTML保存为图片呢？三、 解决办法：1、 将HTML保存为图片：需要用到webbrower类，将指</summary><published>2011-01-26T09:01:00Z</published><updated>2011-01-26T09:01:00Z</updated><author><name>Nina</name><uri>http://www.cnblogs.com/Nina-piaoye/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Nina-piaoye/archive/2011/01/26/1945650.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Nina-piaoye/archive/2011/01/26/1945650.html"/><content type="html">&lt;p&gt;&lt;span style="font-family: Arial; line-height: normal; font-size: 12px; color: #696969;"&gt;&#xD;
&lt;p style="line-height: normal; text-indent: -21pt; margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 21pt;" &gt;&lt;span style="line-height: normal;"&gt;&lt;span style="line-height: normal;"&gt;&lt;span style="line-height: normal; font-family: 'Times New Roman';" face="Times New Roman"&gt;一、 需求：将HTML转PDF打印。Web项目中总是有这样的需求，很是让人苦恼。&lt;br style="line-height: normal;" /&gt;二、 分析：如何完成这个工作？&lt;br style="line-height: normal;" /&gt;1、 需要解析HTML，然后利用itextsharp绘制pdf文档。解析HTML是一个很难完成的任务，各个浏览器对HTML的解析五花八门就知道这不好解决。这条路不好走，但也是可以完成的，通过webbrowser类可以解析HTML获取各对象的位置，然后绘制到pdf中。方法是可行，其中的复杂度不小。&lt;br style="line-height: normal;" /&gt;2、 将HTML保存为图片，然后插入到pdf文档中，这里将介绍这种方法。随之而来的问题：如何将HTML保存为图片呢？&lt;br style="line-height: normal;" /&gt;三、 解决办法：&lt;br style="line-height: normal;" /&gt;1、 将HTML保存为图片：需要用到webbrower类，将指定的HTML载入webbrower，然后调用其DrawToBitmap方法获取图片。代码如下：&lt;br style="line-height: normal;" /&gt;private System.Drawing.Bitmap bitmap;&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private string url;&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private int w = 760, h = 900;//A4纸张对应的分辨率大概就是760*900&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void setBitmap()&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; using (WebBrowser wb = new WebBrowser())&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wb.Width = w;&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wb.Height = h;&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wb.ScrollBarsEnabled = false;&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wb.Navigate(url);&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //确保页面被解析完全&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (wb.ReadyState != WebBrowserReadyState.Complete)&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.Windows.Forms.Application.DoEvents();&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bitmap = new System.Drawing.Bitmap(w, h);&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wb.DrawToBitmap(bitmap, new System.Drawing.Rectangle(0, 0, w, h));&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wb.Dispose();&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br style="line-height: normal;" /&gt;2、 如何调用WebBrowser？直接在web页面用的话，会出现错误：&amp;ldquo;当前线程不在单线程单元中,因此无法实例化 ActiveX 控件&amp;rdquo;。这需要创建一个单线程单元，在此单元内调用，方法如下while循环确保线程执行完成，也就是确保bitmap已经被初始化了：&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; url = Server.MapPath("s.html");&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Thread thread = new Thread(new ThreadStart(setBitmap));&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; thread.SetApartmentState(ApartmentState.STA);&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; thread.Start();&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (thread.IsAlive)&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Thread.Sleep(100);&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bitmap.Save(Server.MapPath("t.bmp"));&lt;br style="line-height: normal;" /&gt;3、 插入图片到PDF：&lt;br style="line-height: normal;" /&gt;iTextSharp.text.Image img = iTextSharp.text.Image.GetInstance(bitmap, System.Drawing.Imaging.ImageFormat.Bmp);&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; img.ScalePercent(75);//pdf分辨率要大一些，需要缩小以恢复正常PDF是96DPI，IE是72DPI&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; doc.Add(img);&lt;br style="line-height: normal;" /&gt;四、 完整代码如下：&lt;br style="line-height: normal;" /&gt;using System;&lt;br style="line-height: normal;" /&gt;using System.Data;&lt;br style="line-height: normal;" /&gt;using System.Web;&lt;br style="line-height: normal;" /&gt;using iTextSharp.text.pdf;&lt;br style="line-height: normal;" /&gt;using iTextSharp.text;&lt;br style="line-height: normal;" /&gt;using System.IO;&lt;br style="line-height: normal;" /&gt;using System.Windows.Forms;&lt;br style="line-height: normal;" /&gt;using System.Threading;&lt;br style="line-height: normal;" /&gt;public partial class HTML2PDF : System.Web.UI.Page&lt;br style="line-height: normal;" /&gt;{&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; protected void Page_Load(object sender, EventArgs e)&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: normal; text-indent: -21pt; margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 21pt;" &gt;&lt;span style="line-height: normal;"&gt;&lt;span style="line-height: normal;"&gt;&lt;span style="line-height: normal; font-family: 'Times New Roman';" face="Times New Roman"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; protected void Button1_Click(object sender, EventArgs e)&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CreatPdf();&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private System.Drawing.Bitmap bitmap;&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private string url;&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private int w = 760, h = 900;&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void setBitmap()&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; using (WebBrowser wb = new WebBrowser())&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wb.Width = w;&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wb.Height = h;&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wb.ScrollBarsEnabled = false;&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wb.Navigate(url);&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //确保页面被解析完全&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (wb.ReadyState != WebBrowserReadyState.Complete)&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.Windows.Forms.Application.DoEvents();&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bitmap = new System.Drawing.Bitmap(w, h);&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wb.DrawToBitmap(bitmap, new System.Drawing.Rectangle(0, 0, w, h));&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wb.Dispose();&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private void CreatPdf()&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Document doc = new Document(PageSize.A4, 9, 18, 36, 36);//左右上下&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MemoryStream ms = new MemoryStream();&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PdfWriter writer = PdfWriter.GetInstance(doc, ms);&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; writer.CloseStream = false;&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; doc.Open();&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; url = Server.MapPath("s.html");&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Thread thread = new Thread(new ThreadStart(setBitmap));&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; thread.SetApartmentState(ApartmentState.STA);&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; thread.Start();&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (thread.IsAlive)&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Thread.Sleep(100);&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bitmap.Save(Server.MapPath("t.bmp"));&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; iTextSharp.text.Image img = iTextSharp.text.Image.GetInstance(bitmap, System.Drawing.Imaging.ImageFormat.Bmp);&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; img.ScalePercent(75);//560 630&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; doc.Add(img);&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch (Exception err)&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; throw new Exception(err.Message);&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; finally&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; doc.Close();&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; using (FileStream fs = new FileStream(Server.MapPath("out.pdf"), FileMode.Create))&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ms.Position = 0;&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; byte[] bit = new byte[ms.Length];&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ms.Read(bit, 0, (int)ms.Length);&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fs.Write(bit, 0, bit.Length);&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ViewPdf(ms);&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: normal; text-indent: -21pt; margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 21pt;" &gt;&lt;span style="line-height: normal;"&gt;&lt;span style="line-height: normal;"&gt;&lt;span style="line-height: normal; font-family: 'Times New Roman';" face="Times New Roman"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private void ViewPdf(Stream fs)&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Response.Clear();&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //中文名的话&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Response.AppendHeader("Content-Disposition", "attachment;filename=" +&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8) + ";charset=GB2312");&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Response.AddHeader("Content-Disposition", "attachment;FileName=out.pdf");&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Response.AddHeader("Content-Length", fs.Length.ToString());&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Response.ContentType = "application/pdf";&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; long fileLength = fs.Length;&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int size = 10240;//10K一--分块下载，10K为1块&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; byte[] readData = new byte[size];&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (size &amp;gt; fileLength)&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; size = Convert.ToInt32(fileLength);&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; long fPos = 0;&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bool isEnd = false;&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (!isEnd)&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((fPos + size) &amp;gt;= fileLength)&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; size = Convert.ToInt32(fileLength - fPos);&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; isEnd = true;&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; readData = new byte[size];&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fs.Position = fPos;&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fs.Read(readData, 0, size);&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Response.BinaryWrite(readData);&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Response.OutputStream.Flush();&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fPos += size;&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fs.Close();&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Response.OutputStream.Close();&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Response.End();//非常重要，没有这句的话，页面的HTML代码将会保存到文件中&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Response.Close();&lt;br style="line-height: normal;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br style="line-height: normal;" /&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: normal; text-indent: -21pt; margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 21pt;" &gt;&lt;span style="line-height: normal;"&gt;&lt;span style="line-height: normal;"&gt;&lt;span style="line-height: normal; font-family: 'Times New Roman';" face="Times New Roman"&gt;五、&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="line-height: normal;"&gt;至此工作完成，转载注明出处，谢谢。&lt;/span&gt;&lt;span style="line-height: normal; font-family: 'Times New Roman';" face="Times New Roman"&gt;&lt;st1:chsdate style="line-height: normal;" isrocdate="False" islunardate="False" day="17" month="9" year="2009"&gt;&lt;span style="line-height: normal;"&gt;2009-9-17&lt;/span&gt;&lt;/st1:chsdate&gt;&lt;span style="line-height: normal;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="line-height: normal; text-indent: -21pt; margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 21pt;" &gt;&lt;span style="line-height: normal; font-family: 'Times New Roman';" face="Times New Roman"&gt;&lt;span style="line-height: normal;"&gt;六、2009-12-23补充说明：增加pdf打印清晰度，对于图片，要想在pdf上打印的更清晰需要生成大图，然后等比例缩放存放在pdf里面，这样pdf打印出来的图会很清晰，基本是缩放比例越大越清晰，对于图形报表特别有效。对于本文介绍的方法，也可以生成大图缩放到pdf里面。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/Nina-piaoye/aggbug/1945650.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/Nina-piaoye/archive/2011/01/26/1945650.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/Nina-piaoye/archive/2011/01/26/1945540.html</id><title type="text">ppt--&amp;gt;PDF</title><summary type="text">下载并安装SaveAsPDF.exe需要安装Office 2007和Microsoft提供的“Microsoft Save as PDF or XPS Add-in for 2007 Microsoft Office programs”组件，可以从官网下载。以下是代码（我用的Chrome浏览器，无法添加程序块，面前看吧。代码是我正在用的，无错误，直接复制过来）//ppt转pdfusingMicrosoft.Office.Interop.PowerPoint;usingMicrosoft.Office.core;  protected void PPTToPDF(string fileNameD</summary><published>2011-01-26T07:44:00Z</published><updated>2011-01-26T07:44:00Z</updated><author><name>Nina</name><uri>http://www.cnblogs.com/Nina-piaoye/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Nina-piaoye/archive/2011/01/26/1945540.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Nina-piaoye/archive/2011/01/26/1945540.html"/><content type="html">&lt;div&gt;下载并安装SaveAsPDF.exe&lt;/div&gt;&#xD;
&lt;div&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span style="font-family: simsun; line-height: 23px;"&gt;需要安装Office 2007和Microsoft提供的&amp;ldquo;Microsoft Save as PDF or XPS Add-in for 2007 Microsoft Office programs&amp;rdquo;组件，可以从官网下载。&amp;nbsp;&lt;br /&gt;以下是代码（我用的Chrome浏览器，无法添加程序块，面前看吧。代码是我正在用的，无错误，直接复制过来）&amp;nbsp;&lt;br /&gt;//ppt转pdf&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span style="font-family: simsun; line-height: 23px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span style="font-family: simsun; line-height: 23px;"&gt;using&amp;nbsp;Microsoft.Office.Interop.PowerPoint;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span style="font-family: simsun; line-height: 23px;"&gt;using&amp;nbsp;Microsoft.Office.core;&lt;br /&gt;&amp;nbsp; &amp;nbsp; protected void PPTToPDF(string fileNameDateTime, string fileNameDateTimeWithoutExtension)&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; {&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; string paramSource = Server.MapPath("~/materials/internalPDF/") + fileNameDateTime;&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; string paramTarget = Server.MapPath("~/materials/internalPDF/") + fileNameDateTimeWithoutExtension + ".pdf";&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Microsoft.Office.Interop.PowerPoint.ApplicationClass application = null;&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Microsoft.Office.Interop.PowerPoint.Presentation presentation = null;&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; try&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; application = new Microsoft.Office.Interop.PowerPoint.ApplicationClass();&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; presentation = application.Presentations.Open(paramSource, MsoTriState.msoTrue, MsoTriState.msoFalse, MsoTriState.msoFalse);&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; presentation.SaveAs(paramTarget, PpSaveAsFileType.ppSaveAsPDF, MsoTriState.msoTrue);&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; catch (Exception ex)&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; throw new Exception(ex.Message);&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; finally&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (presentation != null)&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; presentation.Close();&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; presentation = null;&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (application != null)&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; application.Quit();&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; application = null;&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; GC.Collect();&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; GC.WaitForPendingFinalizers();&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; GC.Collect();&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; GC.WaitForPendingFinalizers();&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&amp;nbsp;&lt;br /&gt;注意添加对Microsoft.Office.Interop.PowerPoint的引用&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span style="font-family: simsun; line-height: 23px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/Nina-piaoye/aggbug/1945540.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/Nina-piaoye/archive/2011/01/26/1945540.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
