zoukankan      html  css  js  c++  java
  • pdf生成

    引用

    using iTextSharp.text;
    using iTextSharp.text.pdf;
    using iTextSharp;
    using System.IO;
    using System.Drawing; 

    //Document:(文档)生成pdf必备的一个对象,生成一个Document示例
            Document document = new Document(PageSize.A4, 30, 30, 5, 5);
            //为该Document创建一个Writer实例:
            PdfWriter.GetInstance(document, new FileStream("Chap0101.pdf", FileMode.Create));
            //打开当前Document
            document.Open();

            //为当前Document添加内容:
            document.Add(new Paragraph("Hello World"));
            //另起一行。有几种办法建立一个段落,如:
            Paragraph p1 = new Paragraph(new Chunk("This is my first paragraph./n", FontFactory.GetFont(FontFactory.HELVETICA, 12)));
            Paragraph p2 = new Paragraph(new Phrase("This is my second paragraph.", FontFactory.GetFont(FontFactory.HELVETICA, 12)));
            Paragraph p3 = new Paragraph("This is my third paragraph.", FontFactory.GetFont(FontFactory.HELVETICA, 12));
            //所有有些对象将被添加到段落中:
            p1.Add("you can add string here/n/t");
            p1.Add(new Chunk("you can add chunks /n")); p1.Add(new Phrase("or you can add phrases./n"));
            document.Add(p1); document.Add(p2); document.Add(p3);

            //创建了一个内容为“hello World”、红色、斜体、COURIER字体、尺寸20的一个块:
            Chunk chunk = new Chunk("Hello world", FontFactory.GetFont(FontFactory.COURIER, 20, iTextSharp.text.Font.COURIER, new iTextSharp.text.Color(255, 0, 0)));
            document.Add(chunk);
            //如果你希望一些块有下划线或删除线,你可以通过改变字体风格简单做到:
            Chunk chunk1 = new Chunk("This text is underlined", FontFactory.GetFont(FontFactory.HELVETICA, 12, iTextSharp.text.Font.UNDEFINED));
            Chunk chunk2 = new Chunk("This font is of type ITALIC | STRIKETHRU", FontFactory.GetFont(FontFactory.HELVETICA, 12, iTextSharp.text.Font.ITALIC | iTextSharp.text.Font.STRIKETHRU));
            //改变块的背景
            chunk2.SetBackground(new iTextSharp.text.Color(0xFF, 0xFF, 0x00));
            //上标/下标
            chunk1.SetTextRise(5);
            document.Add(chunk1);
            document.Add(chunk2);

            //外部链接示例:
            Anchor anchor = new Anchor("website", FontFactory.GetFont(FontFactory.HELVETICA, 12, iTextSharp.text.Font.UNDEFINED, new iTextSharp.text.Color(0, 0, 255)));
            anchor.Reference = "http://itextsharp.sourceforge.net";
            anchor.Name = "website";
            //内部链接示例:
            Anchor anchor1 = new Anchor("This is an internal link/n/n");
            anchor1.Name = "link1";
            Anchor anchor2 = new Anchor("Click here to jump to the internal link/n/f");
            anchor2.Reference = "#link1";
            document.Add(anchor); document.Add(anchor1); document.Add(anchor2);

            //排序列表示例:
            List list = new List(true, 20);
            list.Add(new ListItem("First line"));
            list.Add(new ListItem("The second line is longer to see what happens once the end of the line is reached. Will it start on a new line?"));
            list.Add(new ListItem("Third line"));
            document.Add(list);

            //文本注释:
            Annotation a = new Annotation("authors", "Maybe its because I wanted to be an author myself that I wrote iText.");
            document.Add(a);

            //包含页码没有任何边框的页脚。
            HeaderFooter footer = new HeaderFooter(new Phrase("This is page: "), true);
            footer.Border = iTextSharp.text.Rectangle.NO_BORDER;
            document.Footer = footer;


            //Chapter对象和Section对象自动构建一个树:
            iTextSharp.text.Font f1 = new iTextSharp.text.Font();
            f1.SetStyle(iTextSharp.text.Font.BOLD);
            Paragraph cTitle = new Paragraph("This is chapter 1", f1);
            Chapter chapter = new Chapter(cTitle, 1);
            Paragraph sTitle = new Paragraph("This is section 1 in chapter 1", f1);
            Section section = chapter.AddSection(sTitle, 1);
            document.Add(chapter);

            //构建了一个简单的表:
            Table aTable = new Table(4, 4);
            aTable.AutoFillEmptyCells = true;
            aTable.AddCell("2.2", new Point(2, 2));
            aTable.AddCell("3.3", new Point(3, 3));
            aTable.AddCell("2.1", new Point(2, 1));
            aTable.AddCell("1.3", new Point(1, 3));
            document.Add(aTable);
            //构建了一个不简单的表:
            Table table = new Table(3);
            table.BorderWidth = 1;
            table.BorderColor = new iTextSharp.text.Color(0, 0, 255);
            table.Cellpadding = 5;
            table.Cellspacing = 5;
            Cell cell = new Cell("header");
            cell.Header = true;
            cell.Colspan = 3;
            table.AddCell(cell);
            cell = new Cell("example cell with colspan 1 and rowspan 2");
            cell.Rowspan = 2;
            cell.BorderColor = new iTextSharp.text.Color(255, 0, 0);
            table.AddCell(cell);
            table.AddCell("1.1");
            table.AddCell("2.1");
            table.AddCell("1.2");
            table.AddCell("2.2");
            table.AddCell("cell test1");
            cell = new Cell("big cell");
            cell.Rowspan = 2;
            cell.Colspan = 2;
            cell.BackgroundColor = new iTextSharp.text.Color(0xC0, 0xC0, 0xC0);
            table.AddCell(cell);
            table.AddCell("cell test2");
            // 改变了单元格“big cell”的对齐方式:
            cell.HorizontalAlignment = Element.ALIGN_CENTER;
            cell.VerticalAlignment = Element.ALIGN_MIDDLE;
            document.Add(table);

            //关闭Document
            document.Close();

  • 相关阅读:
    apache2.4+php7.3.2+mysql5.7
    redis 中的key值过期后,触发通知事件
    zookeeper之分布式锁以及分布式计数器(通过curator框架实现)
    SpringCloud学习笔记(4)——Zuul
    SpringCloud学习笔记(3)——Hystrix
    SpringCloud学习笔记(2)——Ribbon
    c++各种排序的简单实现
    c++动态规划dp算法题
    华为机试练习
    ubuntu遇到的 the system is runing low-graphics mode 问题
  • 原文地址:https://www.cnblogs.com/codeloves/p/2777371.html
Copyright © 2011-2022 走看看