(一)C#生成PDF总结
(1)iTextSharp控件对iTextSharp研究还可以表格、文字、各种GDI对象,图片,水印,文字旋转
(2)aspose的控件
(3)PDF Library这个类库(只单纯是有文字的,表格和文字)http://www.codeproject.com/KB/dotnet/PdfLibrary.aspx
(4)直接用.net的RDLC report 就可以啦,to PDF效果很好,也可以对付用户有变数,可以to 其他格式.
(二)iTextSharp生成PDF示列
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; using iTextSharp.text; using iTextSharp.text.pdf; using System.IO; namespace PdfDemo { /// <summary> /// MainWindow.xaml 的交互逻辑 /// </summary> public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } /// <summary> /// 我得第一个Pdf程序 /// </summary> private void CreatePdf() { string fileName = string.Empty; Microsoft.Win32.SaveFileDialog dlg = new Microsoft.Win32.SaveFileDialog(); dlg.FileName = "我的第一个PDF"; dlg.DefaultExt = ".pdf"; dlg.Filter = "Text documents (.pdf)|*.pdf"; Nullable<bool> result = dlg.ShowDialog(); if (result == true) { fileName = dlg.FileName; Document document = new Document(); PdfWriter.GetInstance(document, new FileStream(fileName, FileMode.Create)); document.Open(); iTextSharp.text.Paragraph paragraph = new iTextSharp.text.Paragraph("Hello World"); document.Add(paragraph); document.Close(); }//end if } /// <summary> /// 设置页面大小、作者、标题等相关信息设置 /// </summary> private void CreatePdfSetInfo() { string fileName = string.Empty; Microsoft.Win32.SaveFileDialog dlg = new Microsoft.Win32.SaveFileDialog(); dlg.FileName = "我的第一个PDF"; dlg.DefaultExt = ".pdf"; dlg.Filter = "Text documents (.pdf)|*.pdf"; Nullable<bool> result = dlg.ShowDialog(); if (result == true) { fileName = dlg.FileName; //设置页面大小 iTextSharp.text.Rectangle pageSize = new iTextSharp.text.Rectangle(216f, 716f); pageSize.BackgroundColor = new iTextSharp.text.BaseColor(0xFF, 0xFF, 0xDE); //设置边界 Document document = new Document(pageSize, 36f, 72f, 108f, 180f); PdfWriter.GetInstance(document, new FileStream(fileName, FileMode.Create)); // 添加文档信息 document.AddTitle("PDFInfo"); document.AddSubject("Demo of PDFInfo"); document.AddKeywords("Info, PDF, Demo"); document.AddCreator("SetPdfInfoDemo"); document.AddAuthor("焦涛"); document.Open(); // 添加文档内容 for (int i = 0; i < 5; i++) { document.Add(new iTextSharp.text.Paragraph("Hello World! Hello People! " + "Hello Sky! Hello Sun! Hello Moon! Hello Stars!")); } document.Close(); }//end if } /// <summary> /// 创建多个Pdf新页 /// </summary> private void CreateNewPdfPage() { string fileName = string.Empty; Microsoft.Win32.SaveFileDialog dlg = new Microsoft.Win32.SaveFileDialog(); dlg.FileName = "创建多个Pdf新页"; dlg.DefaultExt = ".pdf"; dlg.Filter = "Text documents (.pdf)|*.pdf"; Nullable<bool> result = dlg.ShowDialog(); if (result == true) { fileName = dlg.FileName; Document document = new Document(PageSize.NOTE); PdfWriter writer= PdfWriter.GetInstance(document, new FileStream(fileName, FileMode.Create)); document.Open(); // 第一页 document.Add(new iTextSharp.text.Paragraph("PDF1, PDF1, PDF1, PDF1, PDF1")); document.Add(new iTextSharp.text.Paragraph("PDF1, PDF1, PDF1, PDF1, PDF1")); document.Add(new iTextSharp.text.Paragraph("PDF1, PDF1, PDF1, PDF1, PDF1")); document.Add(new iTextSharp.text.Paragraph("PDF1, PDF1, PDF1, PDF1, PDF1")); // 添加新页面 document.NewPage(); // 第二页 // 添加第二页内容 document.Add(new iTextSharp.text.Paragraph("PDF2, PDF2, PDF2, PDF2, PDF2"