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();

  • 相关阅读:
    Path Sum II
    Convert Sorted Array to Binary Search Tree
    Construct Binary Tree from Inorder and Postorder Traversal
    Construct Binary Tree from Preorder and Inorder Traversal
    Maximum Depth of Binary Tree
    Binary Tree Zigzag Level Order Traversal
    Binary Tree Level Order Traversal
    Same Tree
    Validate Binary Search Tree
    Binary Tree Inorder Traversal
  • 原文地址:https://www.cnblogs.com/codeloves/p/2777371.html
Copyright © 2011-2022 走看看