C#生成PDF,包括有文字、表格、图片网络上可以搜索到的那个代码恐怕只能生成文本和少量格式的PDF,不适用

解决方案 »

  1.   

    using System;
    using System.Collections.Generic;
    using System.Drawing.Imaging;
    using System.IO;
    using System.Text;
    using iTextSharp.text;
    using iTextSharp.text.pdf;namespace Pbreak.PDf{    class MyPdf
        {        #region Fields        /// <summary>
            /// pdf文档
            /// </summary>
            private Document _pdfDocument;        /// <summary>
            /// 基本字体
            /// </summary>
            private BaseFont _bfSun =
                BaseFont.CreateFont(@"c:\Windows\fonts\SIMSUN.TTC,1", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);        #endregion        #region Constructors        /// <summary>
            /// 构造函数
            /// </summary>
            /// <param name="fileName"></param>
            public MyPdf(string fileName,ListView lvi)
            {
                Font font = new Font(_bfSun,21,1);
                _pdfDocument = new Document(PageSize.A4,10,10,25,25);
                PdfWriter writer = PdfWriter.GetInstance(_pdfDocument,new FileStream(fileName,FileMode.Create));            //添加页脚
                HeaderFooter footer = new HeaderFooter(new Phrase(Program._resourceManager.GetString("page")), true);
                footer.Alignment = 1;
                footer.Border = Rectangle.ALIGN_CENTER;
                _pdfDocument.Footer = footer;            _pdfDocument.Open();            //添加标题
                Paragraph Header = new Paragraph(new Paragraph(Program._resourceManager.GetString("weldTable"), font));
                Header.Alignment = 1;
                _pdfDocument.Add(Header);            //添加数据表格
                _pdfDocument.NewPage();
                _pdfDocument.Add(AddTable(lvi));            //添加图片
                _pdfDocument.NewPage();
                if(PrintHeads.ImageAddress != null && PrintHeads.ImageAddress.Length != 0)
                {
                    foreach(string str in PrintHeads.ImageAddress)
                    {
                        iTextSharp.text.Image image =
                            iTextSharp.text.Image.GetInstance(str);
                        image.Alignment = iTextSharp.text.Image.MIDDLE_ALIGN;
                        _pdfDocument.Add(image);
                    }
                }            _pdfDocument.Close();
            }        #endregion        #region Methods        /// <summary>
            /// 添加数据表格
             /// </summary>
            /// <returns></returns>
            private Table AddTable(ListView lvi)
            {
                Font font = new Font(_bfSun,12,1);
                Table myTable = new Table(4);
                myTable.BorderWidth = 0;
                myTable.BorderColor = new Color(0, 0, 255);
                myTable.Cellpadding = 1;
                myTable.TableFitsPage = true;            for(int columNum = 0; columNum != lvi.Columns.Count; columNum++)
                {
                    Cell myCell = new Cell(new Phrase(lvi.Columns[columNum].Text, font));
                    myCell.BackgroundColor = iTextSharp.text.Color.LIGHT_GRAY;
                    myTable.AddCell(myCell);
                    myTable.EndHeaders();
                }            for(int rowNum = 0; rowNum != lvi.Items.Count; rowNum++)
                {
                    for(int columNum = 0; columNum != lvi.Columns.Count; columNum++)
                    {
                        myTable.AddCell(new Phrase(lvi.Items[rowNum].SubItems[columNum].Text,font));
                    }
                }
                return myTable;
            }        #endregion
    }}
      

  2.   

    http://www.cnblogs.com/zhuor/archive/2005/12/31/308908.html
      

  3.   

    给你个链接,里面挺详细的:
    http://www.cnblogs.com/zhuor/archive/2005/12/31/308908.html
      

  4.   

    使用itextsharp都可以搞定 lz自行去下载
      

  5.   

    可用iTextSharp
    参考
      

  6.   

    一般导出PDF文字还可以,图片类的比较困难我 目前还没掌握这个技术,嘿嘿
      

  7.   

    用itextsharp!
    CSDN下载里就有:
    http://search.download.csdn.net/search/itextsharp
      

  8.   

    找不到通过坐标形式输出到itextsharp的
      

  9.   

    用PDFLib吧,很好用,支持多种程序语言和跨平台,你可以在下载频道搜索到。
      

  10.   

    参考向PDF中添加图片和圆角文本框等元素
      

  11.   

    目前 同事涉及到  先MARK一下
      

  12.   

    http://www.cnblogs.com/zyip/archive/2009/07/29/1533792.html
      

  13.   

    不妨使用Illustrator CS系列SDK + C#生成PDF,这样也很方便。
      

  14.   

    这个方法只能直接写,我尝试过把我的整版页面 render 到pdf时好像读不出一些外连的css和图片
      

  15.   

    我前段时间刚做过一个PDF自动生成程序,还可以自动判断添加图章。是给国税局做的用来网上打印的。
    我是参考的网上的一个资料,楼主需要的话我可以传给你。
      

  16.   

    你愿意的话.水晶报表也可以输出PDF啊!图片.表格.文字都行...
      

  17.   

    我是通过水晶报表来导出PDF的,图片完全没有问题,你完全可用呀!