ITextSharp导出PDF表格和图片(C#)

    文章主要介绍使用ITextSharp导出PDF表格和图片的简单操作说明,以下为ITextSharp.dll下载链接

  分享链接:http://pan.baidu.com/s/1nuc6glj 密码:3gxw

  一、流程

                                                                                                                                    

二、简单实例:

1)创建表格实例

      程序:

        /// <summary>
        /// 创建PDF文件
        /// </summary>
        private void CreatPDFTable()
        {
            //打印PDF表格
            string pdfname = string.Empty;
            SaveFileDialog dlg = new SaveFileDialog();
            dlg.FileName = "PDF表格";
            dlg.DefaultExt = ".pdf";
            dlg.Filter = "Text documents (.pdf)|*.pdf";
            if (dlg.ShowDialog() == DialogResult.OK)
            {
                pdfname = dlg.FileName;
                FileStream fs = new FileStream(pdfname, FileMode.Create);   //创建文件流
                Document document = new Document(PageSize.A7.Rotate());     //创建文件 PageSize.A7.Rotate()表示A7纸横向输出
                PdfWriter pdfWriter = PdfWriter.GetInstance(document, fs);  //实例化
                document.Open();                         //打开文件
                document.Add(new Paragraph("1"));
                document.Add(PDFTable1());               //添加表格

                document.SetPageSize(PageSize.A6);       //A6纸纵向输出
                document.NewPage();                      //新起一页
                document.Add(new Paragraph("2"));
                document.Add(PDFTable2());
                document.Add(new Paragraph("3"));
                document.Add(PDFTable3());
                document.Close();                        //关闭文件
                fs.Close();
            }
        }
        /// <summary>
        /// 创建表格1
        /// </summary>
        /// <returns></returns>
        private PdfPTable PDFTable1()
        {
            var table1 = new PdfPTable(4);     //创建表格实例4列
            int[] a = { 1, 2, 3, 4 };          //设置列宽比例
            table1.SetWidths(a);

            for (int i = 0; i < 16; i++)
            {
                table1.AddCell((i + 1).ToString());     //添加单元格
            }
            return table1;
        }

        /// <summary>
        /// 创建表格2
        /// </summary>
        /// <returns></returns>
        private PdfPTable PDFTable2()
        {
            //字体定义
            var bfchinese = BaseFont.CreateFont(@"c:\windows\fonts\simkai.ttf", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);//simkai.ttf
            var ChFont_12 = new iTextSharp.text.Font(bfchinese, 12);
            var ChFont_10 = new iTextSharp.text.Font(bfchinese, 10);
            var ChFont_8 = new iTextSharp.text.Font(bfchinese, 8);
            var ChFont_12_red = new iTextSharp.text.Font(bfchinese, 12, iTextSharp.text.Font.ITALIC, BaseColor.RED);
            var table2 = new PdfPTable(4);     //创建表格实例
            PdfPCell cell;
            cell = new PdfPCell(new Phrase(Convert.ToString(1), ChFont_10));
            cell.HorizontalAlignment = 1;       //居中输入 默认 0:居左 1:居中
            cell.Colspan = 2;                   //横向合并单元格
            table2.AddCell(cell);

            cell = new PdfPCell(new Phrase(Convert.ToString(2), ChFont_8));
            cell.HorizontalAlignment = 1;
            cell.Rowspan = 2;                  //纵向合并单元格
            table2.AddCell(cell);

            cell = new PdfPCell(new Phrase(Convert.ToString(3), ChFont_10));
            cell.BackgroundColor = BaseColor.GRAY;          //设置背景颜色
            table2.AddCell(cell);

            cell = new PdfPCell(new Phrase(Convert.ToString(4), ChFont_12_red));   //设置字体颜色
            table2.AddCell(cell);

            for (int i = 0; i < 16; i++)
            {
                table2.AddCell((i + 1).ToString());     //添加单元格
            }
            return table2;
        }

        /// <summary>
        /// 单元格中填加表
        /// </summary>
        /// <returns></returns>
        private PdfPTable PDFTable3()
        {
            var table3 = new PdfPTable(4);

            int[] a = { 1, 1, 4, 1 };          //设置列宽比例
            table3.SetWidths(a);
            for (int i = 0; i < 16; i++)
            {
                if (i == 10)
                {
                    PdfPCell cell = new PdfPCell(PDFTable2());      //单元格中添加表2
                    cell.Padding = 0;                               //表与单元格间距为0;
                    table3.AddCell(cell);
                    continue;
                }
                table3.AddCell("3");     //添加单元格
            }
            return table3;
        }

    样式:

    

    

2)创建图片

    程序:

 private void btnPDFImage_Click(object sender, EventArgs e)
        {
            string pdfname = string.Empty;
            SaveFileDialog dlg = new SaveFileDialog();
            dlg.FileName = "PDF图片";
            dlg.DefaultExt = ".pdf";
            dlg.Filter = "Text documents (.pdf)|*.pdf";
            if (dlg.ShowDialog() == DialogResult.OK)
            {
                pdfname = dlg.FileName;
                FileStream fs = new FileStream(pdfname, FileMode.Create);   //创建文件流
                Document document = new Document(PageSize.A5.Rotate());     //创建文件 PageSize.A5.Rotate()表示A5纸横向输出
                PdfWriter pdfWriter = PdfWriter.GetInstance(document, fs);  //实例化
                document.Open();                         //打开文件
                document.Add(addImage(document));               //添加图片
                document.Add(addImage2(document));               //添加图片
                document.Close();                        //关闭文件
                fs.Close();
            }
        }
        /// <summary>
        /// PDF添加图片
        /// </summary>
        /// <returns></returns>
        private iTextSharp.text.Image addImage(Document document)
        {
            iTextSharp.text.Image hgLogo = iTextSharp.text.Image.GetInstance("yijing.jpg");
            hgLogo.ScalePercent(4f);  //图片比例
            hgLogo.SetAbsolutePosition(40f, document.PageSize.Height - 100f); //iamge 位置
            return hgLogo;
        }
        /// <summary>
        /// PDF添加图片2
        /// </summary>
        /// <param name="document"></param>
        /// <returns></returns>
        private iTextSharp.text.Image addImage2(Document document)
        {
            iTextSharp.text.Image hgLogo = iTextSharp.text.Image.GetInstance("yijing.jpg");
            hgLogo.ScalePercent(12f);  //图片比例
            hgLogo.SetAbsolutePosition(200f, document.PageSize.Height - 400f); //iamge 位置
            return hgLogo;
        }

样式:

时间: 2024-10-13 12:23:08

ITextSharp导出PDF表格和图片(C#)的相关文章

利用itextsharp导出pdf

在项目中,客户要求把一些表格导出pdf格式,在网上找了好久终于发现一个完美的解决方案,利用itextsharp可以很方便的导出pdf文件,不说太多了,直接上图,有图有真相 首先是页面图片 然后是导出的pdf图片 导出pdf代码如下: //导出Mold pdf文档 public void exportpdf_Mold(string quotenum, string fullpath) { string pdfName = quotenum + ".pdf"; string savePat

iTextSharp导出Pdf报错 Element not allowed

今天做iTextSharp做PDF导出 突然报错Element not allowed 于是开始检查各个地方,和自己以前写的Demo相比没有什么问题啊,最后发现报错 XMLWorkerHelper.GetInstance().ParseXHtml(writer, doc, msInput, null, Encoding.UTF8, new UnicodeFontFactory());这个地方,然后查看了后台, 同时写了一个Table测试也是正常的.于是只能删除节点一个一个测试,发现原来 iTex

使用iTextSharp导出PDF

/// <summary> /// 导出至PDF /// </summary> /// <param name="dt">数据源</param> /// <param name="fileName">文件名</param> /// <param name="dicTableHeader">字段表头名对照</param> public static vo

PHP导入导出excel表格图片(转)

写excel的时候,我用过pear的库,也用过pack压包的头,同样那些利用smarty等作的简单替换xml的也用过,csv的就更不用谈了.呵呵.(COM方式不讲了,这种可读的太多了,我也写过利用wps等进行word等的生成之类的文章 )但是在读的时候,只用过一种,具体是什么忘了,要回去翻代码了.基本上导出的文件分为两种:1:类Excel格式,这个其实不是传统意义上的Excel文件,只是因为Excel的兼容能力强,能够正确打开而已.修改这种文件后再保存,通常会提示你是否要转换成Excel文件.优

MVC 生成PDf表格并插入图片

最近做的项目中有一个功能,将最终的个人信息生成PDF表格,并插入图片.对于没接触过的程序员来说回一片茫然,网上有多种生成PDf的方法,我给大家介绍一下我认为比较简单,好操作的一种. iTextSharp组件 使用方法. 1,引入itextsharp.dll 2,  引入命名空间 ? 1 2 3 using iTextSharp; using iTextSharp.text; using iTextSharp.text.pdf; ? 1 2 3 4 5 6 7 8 9 10 11 12     D

iText导出pdf、word、图片

一.前言 在企业的信息系统中,报表处理一直占比较重要的作用,本文将介绍一种生成PDF报表的Java组件--iText.通过在服务器端使用Jsp或JavaBean生成PDF报表,客户端采用超级连接显示或下载得到生成的报表,这样就很好的解决了B/S系统的报表处理问题. 二.iText简介 iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库.通过iText不仅可以生成PDF或rtf的文档,而且可以将XML.Html文件转化为PDF文件. iText的

JS导出PDF插件(支持中文、图片使用路径)

原文:JS导出PDF插件(支持中文.图片使用路径) 在WEB上想做一个导出PDF的功能,发现jsPDF比较多人推荐,遗憾的是不支持中文,最后找到pdfmake,很好地解决了此问题.它的效果可以先到http://pdfmake.org/playground.html查看.在使用过程中,还发现图片的插入是相对繁琐的一件事. 针对这些问题,本文的主要内容可分为三部分: pdfmake的基本使用方法: 如何解决中文问题; 如何通过指定图片地址插入图片. pdfmake的基本使用方法 1.包含以下两个文件

c# itextsharp根据模板导出pdf报表

一.前言 PDF文件在目前来说是比较流行的电子文档格式,在.Net framework 中身并不包含可以和pdf打交道的方法,也没有很好操作PDF的类库,所以我们需要对pdf进行编辑,加密,模板打印等操作不得不去找可用的第三方组件,这里就可以选择使用ITextSharp来实现,这个程序是JAVA工具IText的.Net版本. 准备: 1.pdf编辑工具 中文帮助文档 2. itextsharp.dll  点击下载 简单的操作直接查看帮助文件,此处先省略 后续考虑补充 二.itextsharp 使

thinkphp5中使用excel导出数据表格(包涵图片)

首先使用composer require phpoffice/phpexcel下载安装phpexcel包. 将包放入extend下面. 不附加图片的导出 /** * 导出excel(不带图片) * @param string $fileName [description] * @param [type] $headArr [description] * @param [type] $data [description] * @return [type] [description] */ publ