问题是这样,项目中有个打印的事件,其实也就是生成个PDF文件,如何生成PDF文件我也知道了
现在想要知道的问题是,用代码实现控制将要生成的PDF文件里面的内容的格式
具体就是要在PDF文件的某个自己想要输入内容的位置,显示自己想显示的内容
主要是能解决这几个问题
1.怎么生成表格
2.如何在表格中嵌入文本匡或表格
3.如何在表格中显示自己的内容很急忙的,网上找资料找了很久了,还是找不到解决的方法,要说的是不用什么外部的控件
就用代码实现,
就是点一个按钮,就生成了PDF文件,而且内容格式都弄好了
问题解决就结帖,当然大家也不在乎我这点分数,希望得到帮助

解决方案 »

  1.   

    ftp://202.107.251.26/
    里面有個文件夾,
      

  2.   

    http://sourceforge.net/projects/itextsharp/
    itextsharp,开源项目,把它的source拿过来就行了
      

  3.   

    iTextSharp研究这个开源项目吧。
      

  4.   

    我先研究研究
    但迫切希望有人可以给我段在PDF文件中创建表格的代码
    没有代码有PDF语法也可以
    多谢了
      

  5.   

    我是先做成水晶报表,再导到pdf
      

  6.   

    迫切希望有人可以给我段在PDF文件中创建表格的代码
    没有代码有PDF语法也可以
    多谢了
      

  7.   

    迫切希望有人可以给我段在PDF文件中创建表格的代码
    没有代码有PDF语法也可以
      

  8.   

    建议使用itextsharp来完成,上面有人给出地址了,这个是开源的项目,很多可以借鉴或直接来使用的。说实话不建议自己捉摸从0开始研究PDF,文档有1000多页……
      

  9.   

    http://www.infotek.co.jp/product/pdflib/pdflib7_gaiyo.html
    在这里下载个pdflib7,里面有生成表格的部分
      

  10.   

    .net里面的水晶报表好象使用的次数有限制的吧
      

  11.   

    把我做的代码贴上,希望对不新手有所帮助
    using System;
    using System.Web;
    using System.Web.Caching;
    using System.Web.UI.HtmlControls;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Collections.Generic;
    using System.Text;
    using System.IO;
    using iTextSharp.text;
    using iTextSharp.text.pdf;
    namespace PDF_OUT_CL
    {
        public class PDF_Print_Out
        {
            //    * FLAGをセットする 
            private  const string F_FLAG = "fflag";        //  * FONTをセットする  
            private  const string T_FONT = "textfont";        //  * PdfContentByte for this stamper  
            private PdfContentByte cb = null;        private   string[] FIED_NM_OHOR ={ "SCC_Mail_NO" };        //  * TEMPLATE_NM 社員名簿PDFのTEMPLATE名  
            private String TEMPLATE_NM = null;
            
            public PDF_Print_Out(string template_nm)
            {
                this.TEMPLATE_NM=template_nm;
            }
            /// <summary>
            /// Create PDF File
            /// </summary>
            /// <param name="values"></param>
            public void Creat_PDF_File(HttpResponse Response, string[] values)
            {
                this.createPDF_OHOR(Response,FIED_NM_OHOR, values);
            }
            private void createPDF_OHOR(HttpResponse Response, string[] FIELD_NM, string[] values)
            {
                Cache cache = new Cache();
                PdfReader reader = null;
                PdfStamper stamp = null;
                Stream file = null;
                string sname = DateTime.Now.ToString("yyMMddhhmmss");
                Random Rand = new Random(4);
                sname = sname+Convert.ToString(Rand.Next())+".pdf";
                try
                {
                    reader = new PdfReader(this.TEMPLATE_NM);
                    
                    
                    file = new FileStream(@"D:\WINSOR\PDF_OUT\PDF\PDF_OUT"+sname, FileMode.OpenOrCreate);                stamp = new PdfStamper(reader, file);
                    BaseFont baseFont = this.getFont();
                    AcroFields form = stamp.AcroFields;
                    //cb = stamp.GetOverContent(1);                for (int i = 0; i < FIELD_NM.Length; i++)
                    {
                        form.SetFieldProperty(FIELD_NM[i], F_FLAG, PdfFormField.FF_READ_ONLY, null);
                        form.SetFieldProperty(FIELD_NM[i], T_FONT, baseFont, null);
                        form.SetField(FIELD_NM[i], values[i]);
                    }
                    
                                   stamp.FormFlattening = true;
                    stamp.Close();
                    long FileSize;
                    FileStream PDFfile = new FileStream(@"D:\WINSOR\PDF_OUT\PDF\PDF_OUT" + sname,FileMode.Open);
                    
                    FileSize = PDFfile.Length;
                    byte[] buffer = new byte[(int)FileSize];
                    PDFfile.Read(buffer, 0, (int)FileSize);
                    PDFfile.Close();
                    File.Delete(@"D:\WINSOR\PDF_OUT\PDF\PDF_OUT" + sname);
                    Response.AddHeader("Content-Disposition", "attachment");
                    Response.ContentType = "application/pdf";
                    Response.BinaryWrite(buffer);
                    Response.Flush(); 
                    Response.Close();
                   
                    
                }
                catch(Exception ex)
                {
                    throw ex;
                }
               
        }
            
            private BaseFont getFont()  
            {
                BaseFont font = BaseFont.CreateFont(@"c:\WINDOWS\Fonts\SIMHEI.TTF", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
            
                return font; // Return the base font to create the pdf document
            }
    }
    }