zoukankan      html  css  js  c++  java
  • PDF ITextSharp

    示例源码

    //Document:(文档)生成pdf必备的一个对象,生成一个Document示例

    Document document = new Document(PageSize.A4, 30, 30, 5, 5);

    //为该Document创建一个Writer实例:

    PdfWriter.GetInstance(document, new FileStream(Server.MapPath("/upload/"+"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. ", 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 ");

    p1.Add(new Chunk("you can add chunks ")); p1.Add(new Phrase("or you can add phrases. "));

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

    anchor1.Name = "link1";

    Anchor anchor2 = new Anchor("Click here to jump to the internal link f");

    anchor2.Reference = "#link1";

    document.Add(anchor); document.Add(anchor1); document.Add(anchor2);

    //排序列表示例:

    List list = new List(true, 20);

    list.Add(new iTextSharp.text.ListItem("First line"));

    list.Add(new iTextSharp.text.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 iTextSharp.text.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);

    //构建了一个简单的表:

    iTextSharp.text.Table aTable = new iTextSharp.text.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);

    //构建了一个不简单的表:

    iTextSharp.text.Table table = new iTextSharp.text.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();

  • 相关阅读:
    vue中使用第三方UI库的移动端rem适配方案
    前端规范--eslint standard
    从上往下打印二叉树
    栈的压入,弹出序列
    随机森林
    LR
    顺时针打印矩阵
    包含min函数的栈
    树的子结构
    合并两个有序链表
  • 原文地址:https://www.cnblogs.com/xbding/p/3778453.html
Copyright © 2011-2022 走看看