如何使用asp.net导出PDF文件

摘要:
越来越多的电子书、产品说明、公司公告、网络资料和电子邮件开始使用PDF文件。事实上,PDF格式文件已成为数字信息的行业标准。Adobe设计了PDF文件格式,以支持跨平台、多媒体集成的信息发布和发布,特别是为网络信息发布提供支持。PDF文件格式可以将独立于设备和分辨率的文本、字体、格式、颜色、图形和图像封装在一个文件中。在日常工作中,我们经常需要将报告和网页导出为PDF。

PDF简介:PDF(Portable Document Format)文件格式是Adobe公司开发的电子文件格式。这种文件格式与操作系统平台无关,也就是说,PDF文件不管是在Windows,Unix还是在苹果公司的Mac OS操作系统中都是通用的。这一特点使它成为在Internet上进行电子文档发行和数字化信息传播的理想文档格式。越来越多的电子图书、产品说明、公司文告、网络资料、电子邮件开始使用PDF格式文件。PDF格式文件目前已成为数字化信息事实上的一个工业标准。

Adobe公司设计PDF文件格式的目的是为了支持跨平台上的,多媒体集成的信息出版和发布,尤其是提供对网络信息发布的支持。为了达到此目的, PDF具有许多其他电子文档格式无法相比的优点。PDF文件格式可以将文字、字型、格式、颜色及独立于设备和分辨率的图形图像等封装在一个文件中。该格式文件还可以包含超文本链接、声音和动态影像等电子信息,支持特长文件,集成度和安全可靠性都较高。


日常工作中经常遇到想把报表和网页导出到PDF的需求。本文提供完美的解决方案:

ASP.NET导出到PDF的最终效果图(其实winform和控制台程序都一样可以做)。

本文实现 文字,图片,数据表的导出

如何使用asp.net导出PDF文件第1张  

核心技术方案:使用itextsharp.dll

1.下载itextsharp.dll和ICSharpCode.SharpZipLib.dll

如何使用asp.net导出PDF文件第2张

iTextSharp.tutorial.01.zip    示例文件 提供了各种解决方案本文由于时间问题仅做抛砖引玉,希望大家自己研究其他需求

itextsharp.dll  itextsharp-4.0.3-dll.zip  

ICSharpCode.SharpZipLib.dll    http://download.csdn.net/down/135897  ICSharpCode.SharpZipLib.dll   

SharpZipLib.dll类库中的内容实现的压缩与解压功能,它是开源的

2.引用itextsharp.dll和ICSharpCode.SharpZipLib.dll

如何使用asp.net导出PDF文件第3张 

后台代码:

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using iTextSharp;
using iTextSharp.text;
using iTextSharp.text.pdf;
using System.IO;
public partial class _Default : System.Web.UI.Page
...{
    static DataTable datatable = new DataTable("testpdf");
    protected void Page_Load(object sender, EventArgs e)
    ...{
         //判断是否是回发页面http://blog.csdn.net/21aspnet
        if (!Page.IsPostBack)
        ...{
         DataRow dr;
        //建立Column例,可以指明例的类型,这里用的是默认的string
        datatable.Columns.Add(new DataColumn("编号"));
        datatable.Columns.Add(new DataColumn("用户名"));
        for (int i = 1; i < 5; i++)
        ...{
            dr = datatable.NewRow();
            dr[0] = System.Convert.ToString(i);
            dr[1] = "清清月儿" + System.Convert.ToString(i);
            datatable.Rows.Add(dr);
        }
        }
       
       
    }
    protected void Button1_Click(object sender, EventArgs e)
    ...{
      

        try
        ...{
            Document document = new Document();
            PdfWriter.getInstance(document, new FileStream(Server.MapPath("Chap0101.pdf"), FileMode.Create));
                        document.Open();
            BaseFont bfChinese = BaseFont.createFont("C:\\WINDOWS\\Fonts\\simsun.ttc,1", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
            Font fontChinese = new Font(bfChinese, 12, Font.NORMAL,new Color(0, 0, 0));

                        document.Add(new Paragraph(this.TextBox1.Text.ToString(), fontChinese));

            iTextSharp.text.Image jpeg = iTextSharp.text.Image.getInstance(Server.MapPath("pic015.jpg"));
            document.Add(jpeg);
            PdfPTable table = new PdfPTable(datatable.Columns.Count);

            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(), fontChinese));
                }
            }
            document.Add(table);

            document.Close();
        }
        catch (DocumentException de)
        ...{;
            Response.Write(de.ToString());
        }
    }
}

前台代码

如何使用asp.net导出PDF文件第4张   

前台操作:

如何使用asp.net导出PDF文件第5张 

6.属性说明:

itextsharp-4.0.3-dll.zip   示例文件包含几乎所有的PDF处理需求

颜色:
 Font fontChinese = new Font(bfChinese, 12, Font.NORMAL,new Color(0, 0, 0)); //黑Font fontChinese = new Font(bfChinese, 12, Font.NORMAL,new Color(0, 255, 0)); //绿

注释:
 
iText支持不同风格的注释。

u 文本注释:

你可以添加一小段文本到你的文档中,但它并非文档内容的一部分,注释有标题和内容:

Annotation a = new Annotation(

"authors",

"Maybe it's because I wanted to be an author myself that I wrote iText.");

对齐方式:
cell.HorizontalAlignment = Element.ALIGN_CENTER;

cell.VerticalAlignment = Element.ALIGN_MIDDLE;


下划线/删除线:
Chunk chunk1 = new Chunk("This text is underlined", FontFactory.getFont(FontFactory.HELVETICA, 12, Font.UNDERLINE));

Chunk chunk2 = new Chunk("This font is of type ITALIC | STRIKETHRU", FontFactory.getFont(FontFactory.HELVETICA, 12, Font.ITALIC | Font.STRIKETHRU));


加密:
public void setEncryption(boolean strength, String userPassword, String ownerPassword, int permissions);

由于时间问题:更多如页眉页脚属性目录水印单元格间距边框等等请大家自己研究文档。

免责声明:文章转载自《如何使用asp.net导出PDF文件》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇QT5 编译程序运行,报错丢失libgcc_s_sjlj1.dll。尝试重新安装该程序以解决此问题。LIS系统通讯程序原理与实现下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Stimulsoft报表操作笔记(一):统计

一、引言 报表大家应该都知道是什么,简单来说就是用表格、图表等格式来动态显示数据。现在web系统中很多需要使用到报表统计、打印功能等,将所需用到的数据绑定到指定的位置,然后分类汇总,这样查看起来更清晰,管理人员分析数据也一目了然。今天就我之前所做的项目总结一下使用stimulsoft报表的经验。 二、准备工作 首先,需要安装Stimulsoft,我使用的版...

在线浏览PDF文件的实用jquery插件推荐(转)

在web开发当中我们经常需要进行需要在线浏览PDf内容,在线嵌入动态pdf,传统的解决方法安装客户端PDF阅读器,如果是在谷歌是可以在线浏览的,因为他自身就带了一些插件,以前遇到这样的问题往往是费时又费力,很不好解决, 今天就给大家分享一系列使用javascript实现的pdf插件效果,无需借助第三方插件就可以实现在线浏览功能,非常实用 jQuery...

Aspose.Words转换为PDF的时候字体丢失的问题解决

系统中明明有字体的,Word中显示也正常,就是转换为PDF以后不正常,字体丢失,被替换成了等线字体 好一番研究,终于找到原因 ,原因是WindowsFonts下的文件,有些只是虚拟的路径,真正的字体文件是在C:Users用户名AppDataLocalMicrosoftWindowsFonts 这个目录下,从而导致的这个问题 只要将用户的字体目录添加进去就可...

使用Aspose.Cell控件实现Excel高难度报表的生成(一)导出表格控件

时光飞逝,生活、工作、业余研究总是在不停忙碌着,转眼快到月底,该月的博客文章任务未完,停顿回忆一下,总结一些经验以及好的东西出来,大家一起分享一下。本文章主要介绍报表的生成,基于Aspose.Cell控件的报表生成。谈到报表,估计大家都有所领悟以及个人的理解,总的来说,一般的报表生成,基本上是基于以下几种方式:一种是基于微软Excel内置的引擎来实现;一...

【原创】打造基于Dapper的数据访问层

前言 闲来无事,花几天功夫将之前项目里用到的一个数据访问层整理了出来。实现单个实体的增删改查,可执行存储过程,可输出返回参数,查询结果集可根据实际情况返回DataTable、DataSet和强类型,同时支持不同类型数据库。目前成熟的ORM框架多不胜数,虽然有种重复造轮子的感觉,但相信朋友们和我一样,享受造轮子的过程并把它当成一种乐趣,对吧。 调用示例 1、...

R语言中的factor

对于初学者来说,R语言中的factor有些难以理解。如果直译factor为“因子”,使得其更加难以理解。我倾向于不要翻译,就称其为factor,然后从几个例子中理解: [html]view plaincopy <spanstyle="font-size:12px;">data<-c(1,2,2,3,1,2,3,3,1,2,3,3,...