我见网上大部分都是document.execCommand("SaveAs");这个方法是保存HTML页面的。
我现在做的是将页面数据导出PDF,由用户来选择所生成的PDF文件保存路径。就像是WinFowm里面的另存为一样。
其实我只是需要它返回给我一个路径,好让我知道用户要把生成的PDF文件保存在哪个文件夹里面。语文学的不好,描述不清楚请见谅。
我现在做的是将页面数据导出PDF,由用户来选择所生成的PDF文件保存路径。就像是WinFowm里面的另存为一样。
其实我只是需要它返回给我一个路径,好让我知道用户要把生成的PDF文件保存在哪个文件夹里面。语文学的不好,描述不清楚请见谅。
解决方案 »
- 做一个web页面大量计算,请问有些什么前端框架或引擎参考?
- 如何实现在客户端动态改一个textbox的值,显示另两个textbox里的数字相加的值,decimal类型
- <a>标记链接问题 着急等~~~~~~~~~~~~~~~~~
- 请高手帮我解决:写一个"相关新闻/文章"的SQL语句,高手一定进来看
- 做好的网站编译后换个文件夹导致部分页面无法访问?(VS2003,具体见贴!)
- 用visual c#.net 如何开发一个新闻系统?都是在visual C#.net里设计网页和编写代码吗?
- net空间问题~~~急
- datatable綁定問題
- Response.Write()问题
- VS.net中的变量存取问题
- 翻页后数据检索失败
- .net 中单选框组的实现(用什么控件,怎么控制实现)
{
public partial class _Default : System.Web.UI.Page
{
public static string[] ColumnTableName = new string[] { "StuNo", "Name", "Age", "Address" };
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Repeater1.DataSource = GetStudentInfo();
Repeater1.DataBind();
}
} public static System.Data.DataTable GetStudentInfo()
{
System.Data.DataTable table = new System.Data.DataTable();
foreach (string str in ColumnTableName)
{
table.Columns.Add(str);
} DataRow row = table.NewRow();
row[0] = "S001";
row[1] = "张三";
row[2] = "22";
row[3] = "上海市";
table.Rows.Add(row); row = table.NewRow();
row[0] = "S002";
row[1] = "李四";
row[2] = "29";
row[3] = "北京市";
table.Rows.Add(row); row = table.NewRow();
row[0] = "S003";
row[1] = "赵五";
row[2] = "29";
row[3] = "武汉市";
table.Rows.Add(row); return table;
} protected void btnPdf_Click(object sender, EventArgs e)
{
WebApplication1.ExportPDF.CreateProductPDF("StudentInfo", "StudentInfo", _Default.ColumnTableName, _Default.GetStudentInfo());
}
}namespace WebApplication1
{
public class ExportPDF
{
public static void CreateProductPDF(string fileName, string title, string[] columnName, System.Data.DataTable dataTable)
{
//创建Document
Document document = null;
//为该Document创建一个Writer实例
PdfWriter writer = null;
//段
Paragraph p = null;
try
{
//字体
BaseFont baseFont = BaseFont.CreateFont(System.Web.HttpContext.Current.Server.MapPath("/App_Data/SIMYOU.TTF"), BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
Font font = new Font(baseFont, 10, Font.NORMAL);
//内存流
MemoryStream memoryStream = new MemoryStream();
document = new Document(PageSize.A4, 10, 10, 10, 10);
//页脚
HeaderFooter footer = new HeaderFooter(new Phrase("footertxt"), true);
footer.Border = Rectangle.NO_BORDER;
document.Footer = footer;
//为该Document创建一个Writer实例
writer = PdfWriter.GetInstance(document, memoryStream);
writer.CloseStream = false;
//打开
document.Open();
//添加表信息
if (dataTable != null)
{
Table table = new Table(dataTable.Columns.Count);
table.Width = 100;
table.AutoFillEmptyCells = true;
table.BorderWidth = 1;
table.DefaultHorizontalAlignment = 1;
table.DefaultVerticalAlignment = 1;
table.Alignment = Element.ALIGN_MIDDLE;
table.BorderColor = new Color(0, 0, 0);
table.Padding = 1;
table.Spacing = 0.1F;
Cell cell = null;
//表头
for (int i = 0; i < columnName.Length; i++)
{
cell = new Cell();
cell.Header = true;
cell.BackgroundColor = new Color(221, 217, 195);
cell.Colspan = 1;
cell.Add(new Phrase(columnName[i], font));
table.AddCell(cell);
cell = null;
}
//表中数据
for (int i = 0; i < dataTable.Rows.Count; i++)
{
for (int j = 0; j < dataTable.Columns.Count; j++)
{
table.AddCell(new Phrase(dataTable.Rows[i][j].ToString(), font));
}
}
//添加Table
document.Add(table);
}
// 重置页面数量
document.ResetPageCount();
//关闭目标文件
document.Close();
//关闭写入流
writer.Close();
//输出
System.Web.HttpContext.Current.Response.ContentType = "application/pdf";
System.Web.HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF8;
System.Web.HttpContext.Current.Response.AddHeader("Content-disposition", string.Format("attachment; filename={0}", fileName));
System.Web.HttpContext.Current.Response.OutputStream.Write(memoryStream.GetBuffer(), 0, memoryStream.GetBuffer().Length);
System.Web.HttpContext.Current.Response.OutputStream.Flush();
System.Web.HttpContext.Current.Response.OutputStream.Close();
}
catch (Exception e)
{
string ee = e.Message;
//关闭目标文件
document.Close();
//关闭写入流
writer.Close();
document = null;
writer = null;
p = null;
}
} }
}
理解一下