zoukankan      html  css  js  c++  java
  • C# Winfrom iTextSharp 导出pdf 带二维码 表格嵌套 简单Dome

            private void btn3_Click(object sender, EventArgs e)
            {
                var PDFFile = @"D:Userswin10-zhiyongDesktopTTX02.pdf";
                //默认页面大小
                Document document = new Document();
                document.SetPageSize(PageSize.A4);
                PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(PDFFile, FileMode.OpenOrCreate));
                document.Open();//设置字体,支持中文
                BaseFont bfChinese = BaseFont.CreateFont("C:\WINDOWS\Fonts\simsun.ttc,1", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
                iTextSharp.text.Font fontHead = new iTextSharp.text.Font(bfChinese, 18, iTextSharp.text.Font.BOLD, new BaseColor(25, 25, 25));
                iTextSharp.text.Font fontLabel = new iTextSharp.text.Font(bfChinese, 12, iTextSharp.text.Font.BOLD, new BaseColor(25, 25, 25));
                iTextSharp.text.Font fontValue = new iTextSharp.text.Font(bfChinese, 12, iTextSharp.text.Font.NORMAL, new BaseColor(55, 55, 55));
    
                int columnCount = 4;
                PdfPTable table = new PdfPTable(columnCount);
                table.WidthPercentage = 100; // percentage          
                table.DefaultCell.Padding = 1;
                table.DefaultCell.BorderWidth = 1;
                table.DefaultCell.HorizontalAlignment = Element.ALIGN_CENTER;
                //table.DefaultCell.UseAscender = true; 这里写垂直居中对Para不起作用
                //table.DefaultCell.UseDescender = true;
                //table.DefaultCell.VerticalAlignment = Element.ALIGN_MIDDLE;
    
                PdfPCell cell = new PdfPCell();
    
                var strHeaderText = "";
                Paragraph para = new Paragraph("规格清单");
                para.Alignment = Element.ALIGN_CENTER;
                para.Font = fontHead;
                cell.AddElement(para);
                cell.Colspan = 4;
                cell.HorizontalAlignment = Element.ALIGN_CENTER;
    
                cell.UseAscender = true;
    
                cell.UseDescender = true;
                cell.VerticalAlignment = Element.ALIGN_MIDDLE;
                table.AddCell(cell);
    
                //表单数据
                //for (int i = 0; i < dtSource.Rows.Count; i++)
                //{
                //    for (int j = 0; j < dtSource.Columns.Count; j += 2)
                //    {
                //        table.AddCell(new Phrase(dtSource.Rows[i][j].ToString(), fontLabel));
                //        table.AddCell(new Phrase(dtSource.Rows[i][j + 1].ToString(), fontValue));
                //    }
                //}
    
                //审批数据
                //审批意见标签
                PdfPCell cellShenPiYiJianLabel = new PdfPCell();
                Paragraph paraShenPiYiJianLabel = new Paragraph("审批意见");
                paraShenPiYiJianLabel.Alignment = Element.ALIGN_CENTER;
                paraShenPiYiJianLabel.Font = fontLabel;
                cellShenPiYiJianLabel.AddElement(paraShenPiYiJianLabel);
                cellShenPiYiJianLabel.Rowspan = 4;
                cellShenPiYiJianLabel.HorizontalAlignment = Element.ALIGN_CENTER;
                cellShenPiYiJianLabel.UseAscender = true;
                cellShenPiYiJianLabel.UseDescender = true;
                cellShenPiYiJianLabel.VerticalAlignment = Element.ALIGN_MIDDLE;
                table.AddCell(cellShenPiYiJianLabel);
    
    
    
                for (int j = 0; j < 3; j++)
                {
                    Paragraph paraShenPiYiJianContent = new Paragraph("审批内容123123");
                    paraShenPiYiJianContent.Alignment = Element.ALIGN_CENTER;
                    paraShenPiYiJianContent.Font = fontValue;
    
                    PdfPCell cellShenPiYiJianContent = new PdfPCell();
                    cellShenPiYiJianContent.Colspan = 3;
                    cellShenPiYiJianContent.AddElement(paraShenPiYiJianContent);
                    cellShenPiYiJianContent.UseAscender = true;
                    cellShenPiYiJianContent.UseDescender = true;
                    cellShenPiYiJianContent.VerticalAlignment = Element.ALIGN_MIDDLE;
    
                    table.AddCell(cellShenPiYiJianContent);
                }
    
    
                var bmp = QrCodeHelper.CreateQrCode("132461321", 5, 7, "", 10, 5, true);
                System.Drawing.Image imgtt = bmp;
                iTextSharp.text.Image img = iTextSharp.text.Image.GetInstance(imgtt, BaseColor.BLACK, true);
                //img.SetAbsolutePosition(0, 0);
                //writer.DirectContent.AddImage(img);
    
                var paragraph = new Paragraph();
                paragraph.Add(new Chunk(img, 0, 0));
                var cellTT = new PdfPCell { PaddingLeft = 5, PaddingTop = 5, PaddingBottom = 5, PaddingRight = 5 };
                //cellTT.HorizontalAlignment = Element.ALIGN_CENTER;
                //cellTT.AddElement(paragraph);
                cellTT.Colspan = 4;
                cellTT.AddElement(img);
                table.AddCell(cellTT);
    
    
                document.Add(table);
                document.Close();
                writer.Close();
                return;
            }

  • 相关阅读:
    6 全局锁和表锁
    oracle ogg--ogg搭建过程中遇到的错误及处理
    5 深入浅出索引(下)
    4 深入浅出索引(上)
    oracle ogg 单实例双向-新增表,修改表结构(oracle-oracle
    oracle ogg 单实例双向复制搭建(oracle-oracle)--Oracle GoldenGate
    Iview 中 获取 Menu 导航菜单 选中的值
    idea中git分支的使用
    vue使用axios进行ajax请求
    web前端_Vue框架_设置浏览器上方的标题和图标
  • 原文地址:https://www.cnblogs.com/shangdishijiao/p/14079368.html
Copyright © 2011-2022 走看看