asp.net 生成 PDF

问题描述

我想在页面生成PDF文件,先做一个模板,然后把一些数据给填充进行去,点击按钮进行导出成PDF格式的文件!类似于一些网站,点击下载就能直接下载了!各位大侠帮帮忙!我知道要用到iTextsharp第三方控件。但是我现在掌握不好布局!就是把内部做成一张表格的形式!

解决方案

解决方案二:
自己顶!!!!
解决方案三:
usingSystem;usingSystem.IO;usingSystem.Xml;usingSystem.Data;usingSystem.Reflection;usingSystem.Security.Permissions;usingSystem.Text;usingSystem.Web;usingSystem.Collections;usingiTextSharp.text;usingiTextSharp.text.pdf;//创建DocumentDocumentdocument=null;//为该Document创建一个Writer实例PdfWriterwriter=null;//段Paragraphp=null;try{string[]company=ERP.Web.Common.Parameter.CompanyMessage();//字体BaseFontbaseFont=BaseFont.CreateFont(System.Web.HttpContext.Current.Server.MapPath("/Configuration/SIMYOU.TTF"),BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);Fontfont=newFont(baseFont,10,Font.NORMAL);//内存流MemoryStreammemoryStream=newMemoryStream();document=newDocument(PageSize.A4,10,10,10,10);//页脚HeaderFooterfooter=newHeaderFooter(newPhrase("footertxt"),true);footer.Border=Rectangle.NO_BORDER;document.Footer=footer;//为该Document创建一个Writer实例writer=PdfWriter.GetInstance(document,memoryStream);writer.CloseStream=false;//打开document.Open();//添加LogoImageimage=Image.GetInstance(System.Web.HttpContext.Current.Server.MapPath(company[7]));image.Alignment=Image.ALIGN_LEFT|Image.TEXTWRAP;image.ScaleToFit(280,10);image.ScalePercent(80);document.Add(image);image=null;//添加本公司信息p=newParagraph(company[0],font);p.Alignment=Element.ALIGN_RIGHT;document.Add(p);//添加地址string[]inovit=newstring[]{company[1],company[2]+company[3],company[4],company[5]+company[6]};for(inti=0;i<inovit.Length;i++){p=newParagraph(inovit[i],font);p.Alignment=Element.ALIGN_RIGHT;document.Add(p);p=null;}//添加横线PdfContentBytepcb=writer.DirectContent;pcb.MoveTo(10,750);pcb.LineTo(document.PageSize.Width-10,750);pcb.Stroke();pcb=null;//添加标题document.Add(newParagraph("n"));p=newParagraph(title,font);p.Alignment=Element.ALIGN_CENTER;document.Add(p);p=null;//添加公司信息if(companyMessage!=null){for(inti=0;i<companyMessage.Length;i++){if(companyMessage[i]!=""){p=newParagraph(companyMessage[i],font);p.Alignment=Element.ALIGN_LEFT;document.Add(p);p=null;}}}//添加产品描述document.Add(newParagraph("n"));p=newParagraph(company[10],font);p.Alignment=Element.ALIGN_LEFT;document.Add(p);p=null;//添加表信息if(dataTable!=null){Tabletable=newTable(dataTable.Columns.Count);table.Width=100;if(columnWidth!=null)table.Widths=columnWidth;table.AutoFillEmptyCells=true;table.BorderWidth=1;table.DefaultHorizontalAlignment=1;table.DefaultVerticalAlignment=1;table.Alignment=Element.ALIGN_MIDDLE;table.BorderColor=newColor(0,0,0);table.Padding=1;table.Spacing=0.1F;Cellcell=null;//表头for(inti=0;i<columnName.Length;i++){cell=newCell();cell.Header=true;cell.BackgroundColor=newColor(221,217,195);cell.Colspan=1;cell.Add(newPhrase(columnName[i],font));table.AddCell(cell);cell=null;}//表中数据for(inti=0;i<dataTable.Rows.Count;i++){for(intj=0;j<dataTable.Columns.Count;j++){table.AddCell(newPhrase(dataTable.Rows[i][j].ToString(),font));}}//添加表脚部if(!string.IsNullOrEmpty(tableFooter)){cell=newCell();//cell.Colspan=dataTable.Columns.Count;cell.Colspan=columnName.Length;cell.HorizontalAlignment=2;cell.Add(newPhrase(tableFooter,font));table.AddCell(cell);cell=null;}//添加Tabledocument.Add(table);}//添加底部if(pageFooter!=null){for(intpf=0;pf<pageFooter.Length;pf++){if(!string.IsNullOrEmpty(pageFooter[pf])){p=newParagraph(pageFooter[pf],font);p.Alignment=Element.ALIGN_LEFT;document.Add(p);p=null;}}}//重置页面数量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(Exceptione){stringee=e.Message;//关闭目标文件document.Close();//关闭写入流writer.Close();document=null;writer=null;p=null;}

时间: 2024-09-30 11:31:31

asp.net 生成 PDF的相关文章

ASP.NET生成PDF文件在IE中报错

问题描述 如题,今天做打印送货单的功能,参考了几种打印方式,最后选择iTextSharp输出PDF然后打印,在360.火狐.谷歌浏览器中都是可以的,但是在IE中却显示"无法显示XML页."如图:360.火狐.谷歌浏览器中的效果IE中的效果请问各位大神如何解决这个问题?? 解决方案 解决方案二:是否有可能是浏览器的编码设置有问题?解决方案三:引用1楼sundacheng1989的回复: 是否有可能是浏览器的编码设置有问题? 试了,没用解决方案四:你再把第二张图片里的粗体字大声的念一遍,要

巧用ASP实现在线生成PDF文档

    在开始讲解ASP实现在线生成PDF文档之前我们先了解一下PDF的历史,了解了某个东西,知道他的作用性以及重要性,再去学习该ASP程序相信效果一定不一样.     Adobe PDF格式已经变成很多机构和公司进行跨平台制表的通用媒体格式.尽管我不是这个产品的狂热痴迷者,却不得不接受这样一个事实:用这个格式产生一个协定可能会比用Word还要好.           由于在一家雇用公司工作,我已经把我们所有早期的软件写成能在Internet上运行,这样我们就能和小的子公司共享公用数据库了.然而

asp中如何用word模板生成pdf文件

问题描述 asp.net,用word模板生成pdf文件,求源码或者例子 解决方案 解决方案二:有人知道吗??解决方案三:平台是VS2003,framework1.0的解决方案四:ASPOSE.WORDS组件.不过起码是2.0的解决方案五:引用3楼wjq的回复: ASPOSE.WORDS组件.不过起码是2.0的 是的,所以正苦恼着,升级系统平台更是麻烦的事,问问还有没有其他办法呢解决方案六:http://npoi.codeplex.com/解决方案七:引用5楼wuwanchunIT的回复: htt

C#使用itextsharp生成PDF文件的实现代码

以下是对在C#中使用itextsharp生成PDF文件的实现代码进行了详细分析介绍,需要的朋友可以过来参考下   项目需求需要生成一个PDF文档,使用的是VS2010,ASP.NET. 网络上多次搜索没有自己想要的,于是硬着头皮到itextpdf官网看英文文档,按时完成任务,以实用为主,共享一下:使用HTML文件创建PDF模板:使用自定义字体的一种方法: 复制代码 代码如下:                 FontFactory.Register(System.Web.HttpContext.

PHP在网页中动态生成PDF文件详细教程_php实例

本文详细介绍使用 PHP 动态构建 PDF 文件的整个过程.使用免费 PDF 库 (FPDF) 或 PDFLib-Lite 等开源工具进行实验,并使用 PHP 代码控制 PDF 内容格式. 有时您需要准确控制要打印的页面的呈现方式.在这种情况下,HTML 就不再是最佳选择了.PDF 文件使您能够完全控制页面的呈现方式,以及文本.图形和图像在页面上的呈现方式.遗憾的是,用来构建 PDF 文件的 API 不属于 PHP 工具包的标准部件.现在您需要提供一点帮助. 当您在网络上搜索,寻找对 PHP 的

itextsharp生成pdf后的直接打印问题

原文 itextsharp生成pdf后的直接打印问题 小弟这两天用itextsharp生成pdf文档,生成的pdf可以直接保存在指定路径的文件夹下,可是user不想保存,想要点一下button,就可以直接打印,我搞了半天也没找到合适的方法,还希望有做过这方面的,给些建议.多谢多谢啦 我的代码是这样的:  iTextSharp.text.Rectangle page = new Rectangle(683,850); iTextSharp.text.Document document = new 

利用iText在JSP中生成PDF报表

js 问题的由来 前不久做了一个通过JSP生成PDF报表的小项目,算得上开了一次眼界.企业的一些信息通过网络形成Html报表,虽然IE可以直接打印显示在其中的内容,但是从界面上来看,如果直接将Html的显示结果打印出来,显得不太美观.如果将它转成PDF文件再打印,则打印效果会好很多. iText简介 iText是一个开放源码的Java类库,可以用来方便地生成PDF文件.大家通过访问http://sourceforge.net/project/showfiles.php?group_id=1525

ASP.NET生成静态页面

ASP.NET生成静态页面,效果图如下: 1.模板样式:   2.添加内容:   3.生成的静态页面:   实现代码: //"发表"按钮 protected void BtnPublic_Click(object sender, EventArgs e) { string title = TextBox1.Text; string body = WebEditor1.Text; string datetime = DateTime.Now.ToShortDateString(); st

ASP随机生成汉字的方法

ASP随机生成汉字的方法 <%Dim i     Dim j     Dim HS     Dim HE     Dim LS     Dim LE     dim Result     Result=""     HS = 177     HE = 247     LS = 161     LE = 254     dim Max_Num     Max_num=65536     Randomize       For i = 1 To 4 temp1=dec2bin(Int