生成PDF代码:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using DB; //生成PDF using iTextSharp.text; using iTextSharp.text.pdf; using System.IO; namespace Action { public partial class BaoBiao : Form { int sum; public BaoBiao() { InitializeComponent(); } private void BaoBiao_Load(object sender, EventArgs e) { dataGridView1.AllowUserToAddRows = false; show("0","0"); //this.reportViewer1.RefreshReport(); } private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { } private void button1_Click(object sender, EventArgs e) { createImg(); createPDF(); } public void createImg() { //String fileName = GetTimeStamp();//获取时间戳 string imagePath = AppDomain.CurrentDomain.BaseDirectory + @"Imgpdf.jpg"; //临时文件路径 chart1.SaveImage(imagePath, System.Windows.Forms.DataVisualization.Charting.ChartImageFormat.Png); } //时间戳 public string GetTimeStamp() { TimeSpan ts = DateTime.Now - new DateTime(1970, 1, 1, 0, 0, 0, 0); return Convert.ToInt64(ts.TotalSeconds).ToString(); } //PDF生成图片生成器 public iTextSharp.text.Paragraph createPDFimg(PdfWriter writer) { string imagePath = AppDomain.CurrentDomain.BaseDirectory + @"Imgpdf.jpg"; //临时文件路径 iTextSharp.text.Image img = iTextSharp.text.Image.GetInstance(imagePath); img.SetAbsolutePosition(100,400); writer.DirectContent.AddImage(img); iTextSharp.text.Paragraph p = new iTextSharp.text.Paragraph(); p.Alignment = Element.ALIGN_CENTER; return p; } //PDF生成表格生成器 public PdfPTable createPDFtable(PdfWriter writer) { string start = this.start.Text; string over = this.over.Text; BaseFont baseFont = BaseFont.CreateFont("C:\WINDOWS\FONTS\STSONG.TTF", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED); iTextSharp.text.Font font1 = new iTextSharp.text.Font(baseFont, 11); iTextSharp.text.Font font2 = new iTextSharp.text.Font(baseFont, 15); float[] widths = new float[] { 120, 180, 240 };//三列列宽不同若果是浮点数需要加f PdfPTable table = new PdfPTable(3); table.SetWidths(widths); PdfPCell cell; cell = new PdfPCell(new Phrase("霸气鞋店销售单据",font2)); cell.HorizontalAlignment = 1; cell.Rowspan = 2; cell.Colspan = 3; table.AddCell(cell); cell = new PdfPCell(new Phrase("销售状况",font2)); cell.Rowspan = 2; table.AddCell(cell); cell = new PdfPCell(new Phrase("时间区间", font1)); table.AddCell(cell); cell = new PdfPCell(new Phrase(start+"-"+over, font1)); table.AddCell(cell); cell = new PdfPCell(new Phrase("盈利", font1)); table.AddCell(cell); cell = new PdfPCell(new Phrase(sum+"", font1)); table.AddCell(cell); cell = new PdfPCell(new Phrase("单据时间", font1)); table.AddCell(cell); cell = new PdfPCell(new Phrase(DateTime.Now.ToString("yyyy-MM-dd"), font1)); cell.Colspan = 2; table.AddCell(cell); return table; } //生成PDF public void createPDF() { string fileName = string.Empty; SaveFileDialog dlg = new SaveFileDialog(); dlg.FileName = "我的第一个PDF"; dlg.DefaultExt = ".pdf"; dlg.Filter = "Text documents (.pdf)|*.pdf"; DialogResult result = dlg.ShowDialog(); if (result == DialogResult.OK && dlg.FileName.Length > 0) { fileName = dlg.FileName; Document document = new Document(); BaseFont baseFont = BaseFont.CreateFont("C:\WINDOWS\FONTS\STSONG.TTF",BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED); iTextSharp.text.Font font = new iTextSharp.text.Font(baseFont, 15); PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(fileName, FileMode.Create)); document.Open(); Paragraph p = new Paragraph("公司单据", font); p.Alignment = 1; document.Add(p); Paragraph p0 = new Paragraph(" ", font); p0.Alignment = 1; document.Add(p0); PdfPTable table=createPDFtable(writer); document.Add(table); Paragraph p1 = new Paragraph("领导签字:_______________", font); p1.Alignment = 1; document.Add(p1); iTextSharp.text.Paragraph img=createPDFimg(writer); document.Add(img); document.Close(); }//end if } private void button3_Click(object sender, EventArgs e) { string start=""; string over=""; start = this.start.Text; over = this.over.Text; show(start, over); } //刷新表格 public void show(string start,string over) { this.dataGridView1.Rows.Clear(); List<string> xData = new List<string>(); List<int> yData = new List<int>(); List<XSBean> list = DB.Get.getXS(start, over); int sum = DB.Get.getSum(start, over); foreach (var date in list) { int index = this.dataGridView1.Rows.Add(); this.dataGridView1.Rows[index].Cells[0].Value = date.getTime(); this.dataGridView1.Rows[index].Cells[1].Value = date.getProfit(); xData.Add(date.getTime()); yData.Add(date.getProfit()); } chart1.Series[0]["PieLabelStyle"] = "Outside";//将文字移到外侧 chart1.Series[0]["PieLineColor"] = "Black";//绘制黑色的连线。 chart1.Series[0].Points.DataBindXY(xData, yData); this.number.Text = sum+""; } private void number_Click(object sender, EventArgs e) { } } }