生成pdf文件的好东西,itextsharp

1/20/2007来源:ASP.NET技巧人气:13485

官网:
http://sourceforge.net/PRojects/itextsharp/
http://hardrock.cnblogs.com/
http://www.rubypdf.com/

现在的版本是3.18版,记得在引用里导入itextsharp.下面的代码是把图象合并到一个多页pdf的例子.

      private void process(string[] files, string newpdf)
        {
             iTextSharp.text.Document document = new iTextSharp.text.Document(iTextSharp.text.PageSize.A4, 25, 25, 25, 25);

            try
            {
                iTextSharp.text.pdf.PdfWriter.GetInstance(document, new FileStream(newpdf, FileMode.Create, Fileaccess.ReadWrite));

                document.Open();
                iTextSharp.text.Image image;
                for (int i = 0; i < files.Length; i++)
                {
                    image = iTextSharp.text.Image.GetInstance(files[i]);
                
                    if (image.Height > iTextSharp.text.PageSize.A4.Height - 25)
                    {
                        image.ScaleToFit(iTextSharp.text.PageSize.A4.Width - 25, iTextSharp.text.PageSize.A4.Height - 25);
                    }
                    else if (image.Width > iTextSharp.text.PageSize.A4.Width - 25)
                    {
                        image.ScaleToFit(iTextSharp.text.PageSize.A4.Width - 25, iTextSharp.text.PageSize.A4.Height - 25);
                    }
                    image.Alignment = iTextSharp.text.Image.ALIGN_MIDDLE;
                    //image.SetDpi(72, 72);

                    document.NewPage();
                    document.Add(image);
                
                    //Phrase phrase3 = new Phrase("dreign@163.com\n", FontFactory.GetFont(FontFactory.TIMES, 9, iTextSharp.text.Font.NORMAL, new iTextSharp.text.Color(192, 192, 192)));
                    //document.Add(phrase3);
                }
            }
            catch (Exception ioe)
            {
                MessageBox.Show(ioe.Message);
            }
            document.Close();
        }