ItextSharp代码示例

示例代码目录

示例代码0101. 5

示例代码0102. 7

示例代码0103. 9

示例代码0104. 11

示例代码0105. 13

示例代码0106. 15

示例代码0107. 17

示例代码0108. 20

示例代码0109. 23

示例代码0110. 24

示例代码0111. 25

示例代码0201. 29

示例代码0202. 31

示例代码0203. 34

示例代码0204. 36

示例代码0205. 38

示例代码0206. 40

示例代码0207. 43

示例代码0208. 45

示例代码0301. 47

示例代码0302. 49

示例代码0303. 52

示例代码0304. 55

示例代码0401. 57

示例代码0402. 59

示例代码0403. 62

示例代码0404. 64

示例代码0405. 66

示例代码0501. 68

示例代码0502. 70

示例代码0503. 72

示例代码0504. 74

示例代码0505. 76

示例代码0506. 78

示例代码0507. 80

示例代码0508. 81

示例代码0509. 84

示例代码0510. 87

示例代码0511. 90

示例代码0512. 92

示例代码0513. 95

示例代码0514. 98

示例代码0515. 102

示例代码0516. 104

示例代码0517. 106

示例代码0518. 108

示例代码0601. 111

示例代码0602. 113

示例代码0603. 115

示例代码0604. 117

示例代码0605. 119

示例代码0606. 121

示例代码0607. 123

示例代码0608. 125

示例代码0609. 127

示例代码0610. 129

示例代码0611. 131

示例代码0613. 133

示例代码0614. 135

示例代码0615. 137

示例代码0616. 139

示例代码0702. 141

示例代码0801. 142

示例代码0802. 144

示例代码0803. 146

示例代码0804. 148

示例代码0901. 150

示例代码1001. 152

示例代码1002. 154

示例代码1003. 156

示例代码1004. 158

示例代码1005. 160

示例代码1006. 165

示例代码1007. 170

示例代码1008. 173

示例代码1009. 177

示例代码1010. 178

示例代码1011. 180

示例代码1012. 182

示例代码1013. 187

示例代码1013. 189

示例代码1014. 193

示例代码1015. 195

示例代码1101. 200

示例代码1102. 202

示例代码0101

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap0101

{

public static void Main()

{

Console.WriteLine("Chapter 1
example 1: Hello World");

// step 1:
creation of a document-object

Document document = new Document();

try

{

// step
2:

// we
create a writer that listens to the document

// and
directs a PDF-stream to a file

PdfWriter.getInstance(document, new FileStream("Chap0101.pdf",
FileMode.Create));

// step 3: we open the document

document.Open();

// step
4: we Add a paragraph to the document

document.Add(new Paragraph("Hello World"));

}

catch(DocumentException
de)

{

Console.Error.WriteLine(de.Message);

}

catch(IOException
ioe)

{

Console.Error.WriteLine(ioe.Message);

}

// step 5: we
close the document

document.Close();

}

}


示例代码0102

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap0102

{

public static void Main()

{

Console.WriteLine("Chapter 1
example 2: PageSize");

// step 1:
creation of a document-object

Rectangle pageSize = new Rectangle(144, 720);

pageSize.BackgroundColor = new Color(0xFF, 0xFF, 0xDE);

Document document = new Document(pageSize);

try

{

// step
2:

// we
create a writer that listens to the document

// and
directs a PDF-stream to a file

PdfWriter.getInstance(document, new FileStream("Chap0102.pdf",
FileMode.Create));

// step
3: we open the document

document.Open();

// step
4: we Add some paragraphs to the document

for
(int i = 0; i < 5; i++)

{

document.Add(new Paragraph("Hello World"));

}

}

catch(DocumentException
de)

{

Console.Error.WriteLine(de.Message);

}

catch(IOException
ioe)

{

Console.Error.WriteLine(ioe.Message);

}

// step 5: we
close the document

document.Close();

}

}


示例代码0103

using System;

using System.IO;

using System.Diagnostics;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap0103

{

public static void Main()

{

Console.WriteLine("Chapter 1
example 3: PageSize");

// step 1:
creation of a document-object

Document document = new Document(PageSize.A4.rotate());

try

{

// step
2:

// we
create a writer that listens to the document

// and
directs a PDF-stream to a file

PdfWriter.getInstance(document, new FileStream("Chap0103.pdf",
FileMode.Create));

// step
3: we open the document

document.Open();

// step
4: we add some phrases to the document

for
(int i = 0; i < 20; i++)

{

document.Add(new Phrase("Hello World, Hello Sun, Hello Moon,
Hello Stars, Hello Sea, Hello Land, Hello People. "));

}

}

catch(DocumentException
de)

{

Console.Error.WriteLine(de.Message);

}

catch(IOException
ioe)

{

Console.Error.WriteLine(ioe.Message);

}

// step 5: we
close the document

document.Close();

}

}


示例代码0104

using System;

using System.IO;

using System.Diagnostics;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap0104

{

public static void Main()

{

Console.WriteLine("Chapter 1
example 4: Margins");

// step 1: creation
of a document-object

Document document = new Document(PageSize.A5, 36, 72, 108, 180);

try

{

// step
2:

// we
create a writer that listens to the document

// and
directs a PDF-stream to a file

PdfWriter.getInstance(document, new FileStream("Chap0104.pdf",
FileMode.Create));

// step
3: we open the document

document.Open();

// step
4: we Add a paragraph to the document

Paragraph paragraph = new Paragraph();

paragraph.Alignment =
Element.ALIGN_JUSTIFIED;

for
(int i = 0; i < 20; i++)

{

paragraph.Add("Hello
World, Hello Sun, Hello Moon, Hello Stars, Hello Sea, Hello Land, Hello People.
");

}

document.Add(paragraph);

}

catch(DocumentException
de)

{

Console.Error.WriteLine(de.Message);

}

catch(IOException
ioe)

{

Console.Error.WriteLine(ioe.Message);

}

// step 5: we
close the document

document.Close();

}

}


示例代码0105

using System;

using System.Collections;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Web;

using System.Web.SessionState;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.HtmlControls;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

/// <summary>

/// Summary description for Chap0501.

/// </summary>

public class Chap0501 :
System.Web.UI.Page

{

private void Page_Load(object
sender, System.EventArgs e)

{

// step 1

// need to
write to memory first due to IE wanting

// to know
the length of the pdf beforehand

MemoryStream m = new MemoryStream();

Document document = new Document();

try

{

// step
2: we set the ContentType and create an instance of the Writer

Response.ContentType =
"application/pdf";

PdfWriter.getInstance(document,
m);

// step
3

document.Open();

// step
4

document.Add(new Paragraph(DateTime.Now.ToString()));

}

catch
(DocumentException ex)

{

Console.Error.WriteLine(ex.StackTrace);

Console.Error.WriteLine(ex.Message);

}

// step 5:
Close document

document.Close();

// step 6:
Write pdf bytes to outputstream

Response.OutputStream.Write(m.GetBuffer(),
0, m.GetBuffer().Length);

Response.OutputStream.Flush();

Response.OutputStream.Close();

}

#region Web Form Designer generated code

override protected void
OnInit(EventArgs e)

{

//

// CODEGEN:
This call is required by the ASP.NET Web Form Designer.

//

InitializeComponent();

base.OnInit(e);

}

/// <summary>

/// Required method for Designer support - do not modify

/// the contents of this method with the code editor.

/// </summary>

private void InitializeComponent()

{

this.Load
+= new System.EventHandler(this.Page_Load);

}

#endregion

}


示例代码0106

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap0106

{

public static void  Main()

{

Console.WriteLine("Chapter 1
example 6: Meta Information");

// step 1:
creation of a document-object

Document document = new Document();

try

{

// step
2:

// we
create a writer that listens to the document

// and
directs a PDF-stream to a file

PdfWriter.getInstance(document, new FileStream("Chap0106.pdf",
FileMode.Create));

// step
3: we add some metadata and open the document

document.addTitle("Hello
World example");

document.addSubject("This
example explains step 6 in Chapter 1");

document.addKeywords("Metadata,
iText, step 6, tutorial");

document.addCreator("My
program using iText#");

document.addAuthor("Bruno
Lowagie");

document.addHeader("Expires",
"0");

document.Open();

// step
4: we add a paragraph to the document

document.Add(new Paragraph("Hello World"));

}

catch(DocumentException
de)

{

Console.Error.WriteLine(de.Message);

}

catch(IOException
ioe)

{

Console.Error.WriteLine(ioe.Message);

}

// step 5: we
close the document

document.Close();

}

}


示例代码0107

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap0107

{

public static void Main()

{

Console.WriteLine("Chapter 1
example 7: newPage()");

// step 1:
creation of a document-object

Document document = new Document();

try

{

// step
2:

// we
create a writer that listens to the document

// and
directs a PDF-stream to a file

PdfWriter.getInstance(document, new FileStream("Chap0107.pdf",
FileMode.Create));

// step
3:

// we
Add a Watermark that will show up on PAGE 1

try

{

Watermark watermark = new Watermark(Image.getInstance("watermark.jpg"),
200, 420);

document.Add(watermark);

}

catch

{

Console.Error.WriteLine("Are
you sure you have the file ‘watermark.jpg‘ in the right path?");

}

// we
Add a Header that will show up on PAGE 1

HeaderFooter header = new HeaderFooter(new
Phrase("This is a header"), false);

document.Header = header;

// we
open the document

document.Open();

// we
rotate the page, starting from PAGE 2

document.setPageSize(PageSize.A4.rotate());

// we
need to change the position of the Watermark

try

{

Watermark watermark = new
Watermark(Image.getInstance("watermark.jpg"), 320, 200);

document.Add(watermark);

}

catch

{

Console.Error.WriteLine("Are
you sure you have the file ‘watermark.jpg‘ in the right path?");

}

// we
Add a Footer that will show up on PAGE 2

HeaderFooter footer = new HeaderFooter(new
Phrase("This is page: "), true);

document.Footer = footer;

// step
4: we Add content to the document

// PAGE
1

document.Add(new Paragraph("Hello World"));

// we
trigger a page break

document.newPage();

// PAGE
2

// we
Add some more content

document.Add(new Paragraph("Hello Earth"));

// we
remove the header starting from PAGE 3

document.resetHeader();

// we
trigger a page break

document.newPage();

// PAGE
3

// we
Add some more content

document.Add(new Paragraph("Hello Sun"));

document.Add(new Paragraph("Remark: the header has
vanished!"));

// we
reset the page numbering

document.resetPageCount();

// we
trigger a page break

document.newPage();

// PAGE
4

// we
Add some more content

document.Add(new Paragraph("Hello Moon"));

document.Add(new Paragraph("Remark: the pagenumber has been
reset!"));

}

catch(DocumentException de)

{

Console.Error.WriteLine(de.Message);

}

catch(IOException
ioe)

{

Console.Error.WriteLine(ioe.Message);

}

// step 5: we
close the document

document.Close();

}

}


示例代码0108

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap0108

{

public static void Main()

{

Console.WriteLine("Chapter 1
example 8: Viewerpreferences");

// step 1:
creation of a document-object

Document document = new Document();

try

{

// step
2:

// we
create a writer that listens to the document

// and
directs a PDF-stream to a file

PdfWriter writerA =
PdfWriter.getInstance(document, new
FileStream("Chap0108a.pdf", FileMode.Create));

writerA.setViewerPreferences(PdfWriter.PageLayoutTwoColumnLeft);

PdfWriter writerB =
PdfWriter.getInstance(document, new
FileStream("Chap0108b.pdf", FileMode.Create));

writerB.setViewerPreferences(PdfWriter.HideMenubar
| PdfWriter.HideToolbar);

PdfWriter writerC =
PdfWriter.getInstance(document, new
FileStream("Chap0108c.pdf", FileMode.Create));

writerC.setViewerPreferences(PdfWriter.PageLayoutTwoColumnLeft
| PdfWriter.PageModeFullScreen | PdfWriter.NonFullScreenPageModeUseThumbs);

// step
3:

// we
Add a Watermark that will show up on PAGE 1

try

{

Watermark watermark = new
Watermark(Image.getInstance("watermark.jpg"), 200, 420);

document.Add(watermark);

}

catch

{

Console.Error.WriteLine("Are
you sure you have the file ‘watermark.jpg‘ in the right path?");

}

// we
Add a Header that will show up on PAGE 1

HeaderFooter header = new HeaderFooter(new
Phrase("This is a header"), false);

document.Header = header;

// we
open the document

document.Open();

// we
rotate the page, starting from PAGE 2

document.setPageSize(PageSize.A4.rotate());

// we
need to change the position of the Watermark

try

{

Watermark watermark = new
Watermark(Image.getInstance("watermark.jpg"), 320, 200);

document.Add(watermark);

}

catch

{

Console.Error.WriteLine("Are
you sure you have the file ‘watermark.jpg‘ in the right path?");

}

// we
Add a Footer that will show up on PAGE 2

HeaderFooter footer = new HeaderFooter(new
Phrase("This is page: "), true);

document.Footer = footer;

// step
4: we Add content to the document

// PAGE 1

document.Add(new Paragraph("Hello World"));

// we
trigger a page break

document.newPage();

// PAGE
2

// we
Add some more content

document.Add(new Paragraph("Hello Earth"));

// we
remove the header starting from PAGE 3

document.resetHeader();

// we
trigger a page break

document.newPage();

// PAGE
3

// we
Add some more content

document.Add(new Paragraph("Hello Sun"));

document.Add(new Paragraph("Remark: the header has
vanished!"));

// we
reset the page numbering

document.resetPageCount();

// we
trigger a page break

document.newPage();

// PAGE
4

// we
Add some more content

document.Add(new Paragraph("Hello Moon"));

document.Add(new Paragraph("Remark: the pagenumber has been
reset!"));

}

catch(DocumentException
de)

{

Console.Error.WriteLine(de.Message);

}

catch(IOException
ioe)

{

Console.Error.WriteLine(ioe.Message);

}

// step 5: we
close the document

document.Close();

}

}

示例代码0109

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap0109

{

public static void Main()

{

Console.WriteLine("Chapter 1
example 9: encryption 40 bits");

Document document = new Document(PageSize.A4, 50, 50, 50, 50);

try

{

PdfWriter writer =
PdfWriter.getInstance(document, new
FileStream("Chap0109.pdf", FileMode.Create));

writer.setEncryption(PdfWriter.STRENGTH40BITS,
null, null,
PdfWriter.AllowCopy);

document.Open();

document.Add(new Paragraph("This document is Top
Secret!"));

document.Close();

}

catch
(Exception de)

{

Console.WriteLine(de.StackTrace);

}

}

}


示例代码0110

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap0110

{

public static void Main()

{

Console.WriteLine("Chapter 1
example 10: encryption 128 bits");

Document document = new Document(PageSize.A4, 50, 50, 50, 50);

try

{

PdfWriter writer =
PdfWriter.getInstance(document, new
FileStream("Chap0110.pdf", FileMode.Create));

writer.setEncryption(PdfWriter.STRENGTH128BITS,
"userpass", "ownerpass", PdfWriter.AllowCopy |
PdfWriter.AllowPrinting);

document.Open();

document.Add(new Paragraph("This document is Top
Secret!"));

document.Close();

}

catch
(Exception de)

{

Console.Error.WriteLine(de.StackTrace);

}

}

}


示例代码0111

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap0111

{

public static void Main()

{

Console.WriteLine("Chapter 1
example 11: pause() and resume()");

// step 1:
creation of a document-object

Document document = new Document();

try

{

// step
2:

// we
create a writer that listens to the document

// and
directs a PDF-stream to a file

PdfWriter writerA =
PdfWriter.getInstance(document, new
FileStream("Chap0111a.pdf", FileMode.Create));

PdfWriter writerB =
PdfWriter.getInstance(document, new
FileStream("Chap0111b.pdf", FileMode.Create));

// step
3:

// we
Add a Watermark that will show up on PAGE 1

writerB.Pause();

try

{

Watermark watermark = new Watermark(Image.getInstance("watermark.jpg"),
200, 420);

document.Add(watermark);

}

catch

{

Console.Error.WriteLine("Are
you sure you have the file ‘watermark.jpg‘ in the right path?");

}

writerB.resume();

// we
Add a Header that will show up on PAGE 1

HeaderFooter header = new HeaderFooter(new
Phrase("This is a header"), false);

document.Header = header;

// we
open the document

document.Open();

// we
rotate the page, starting from PAGE 2

document.setPageSize(PageSize.A4.rotate());

// we
need to change the position of the Watermark

try

{

Watermark watermark = new
Watermark(Image.getInstance("watermark.jpg"), 320, 200);

document.Add(watermark);

}

catch

{

Console.Error.WriteLine("Are
you sure you have the file ‘watermark.jpg‘ in the right path?");

}

// we
Add a Footer that will show up on PAGE 2

HeaderFooter footer = new HeaderFooter(new
Phrase("This is page: "), true);

document.Footer = footer;

// step
4: we Add content to the document

// PAGE
1

document.Add(new Paragraph("Hello World"));

// we
trigger a page break

document.newPage();

// PAGE
2

// we
Add some more content

document.Add(new Paragraph("Hello Earth"));

// we
remove the header starting from PAGE 3

writerA.Pause();

document.resetHeader();

writerA.resume();

// we
trigger a page break

document.newPage();

// PAGE
3

// we
Add some more content

document.Add(new Paragraph("Hello Sun"));

writerA.Pause();

document.Add(new Paragraph("Remark: the header has
vanished!"));

writerA.resume();

// we
reset the page numbering

writerB.Pause();

document.resetPageCount();

writerB.resume();

// we
trigger a page break

document.newPage();

// PAGE
4

// we
Add some more content

document.Add(new Paragraph("Hello Moon"));

writerB.Pause();

document.Add(new Paragraph("Remark: the pagenumber has been
reset!"));

writerB.resume();

}

catch(DocumentException
de)

{

Console.Error.WriteLine(de.Message);

}

catch(IOException
ioe)

{

Console.Error.WriteLine(ioe.Message);

}

// step 5: we
close the document

document.Close();

}

}


示例代码0201

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap0201

{

public static void Main()

{

Console.WriteLine("Chapter 2
example 1: Chunks and fonts");

// step 1:
creation of a document-object

Document document = new Document();

try

{

// step
2:

// we
create a writer that listens to the document

// and
directs a PDF-stream to a file

PdfWriter.getInstance(document, new
FileStream("Chap0201.pdf",FileMode.Create));

// step
3: we open the document

document.Open();

// step
4: we Add content to the document

Font[] fonts = new Font[14];

fonts[0] =
FontFactory.getFont(FontFactory.COURIER, 12, Font.NORMAL);

fonts[1] =
FontFactory.getFont(FontFactory.COURIER, 12, Font.BOLD);

fonts[2] =
FontFactory.getFont(FontFactory.COURIER, 12, Font.ITALIC);

fonts[3] =
FontFactory.getFont(FontFactory.COURIER, 12, Font.BOLD | Font.ITALIC);

fonts[4] =
FontFactory.getFont(FontFactory.HELVETICA, 12, Font.NORMAL);

fonts[5] = FontFactory.getFont(FontFactory.HELVETICA,
12, Font.BOLD);

fonts[6] =
FontFactory.getFont(FontFactory.HELVETICA, 12, Font.ITALIC);

fonts[7] =
FontFactory.getFont(FontFactory.HELVETICA, 12, Font.BOLD | Font.ITALIC);

fonts[8] =
FontFactory.getFont(FontFactory.TIMES_NEW_ROMAN, 12, Font.NORMAL);

fonts[9] =
FontFactory.getFont(FontFactory.TIMES_NEW_ROMAN, 12, Font.BOLD);

fonts[10] =
FontFactory.getFont(FontFactory.TIMES_NEW_ROMAN, 12, Font.ITALIC);

fonts[11] =
FontFactory.getFont(FontFactory.TIMES_NEW_ROMAN, 12, Font.BOLD | Font.ITALIC);

fonts[12] =
FontFactory.getFont(FontFactory.SYMBOL, 12, Font.NORMAL);

fonts[13] =
FontFactory.getFont(FontFactory.ZAPFDINGBATS, 12, Font.NORMAL);

for
(int i = 0; i < 14; i++)

{

Chunk chunk = new Chunk("This is some", fonts[i]);

document.Add(new Phrase(chunk));

document.Add(new Phrase(new
Chunk(" font. ",

fonts[i]).setTextRise((i
% 2 == 0) ? -6 : 6)));

}

document.Add(new Phrase(new
Chunk("This text is underlined",

FontFactory.getFont(FontFactory.HELVETICA,
12, Font.UNDERLINE))));

document.Add(new Phrase(new
Chunk("This font is of type ITALIC | STRIKETHRU",

FontFactory.getFont(FontFactory.HELVETICA,
12, Font.ITALIC | Font.STRIKETHRU))));

Chunk ck = new Chunk("This text has a yellow background color",
FontFactory.getFont(FontFactory.HELVETICA, 12));

ck.setBackground(new Color(0xFF, 0xFF, 0x00));

document.Add(new Phrase(ck));

}

catch(DocumentException
de)

{

Console.Error.WriteLine(de.Message);

}

catch(IOException
ioe)

{

Console.Error.WriteLine(ioe.Message);

}

// step 5: we
close the document

document.Close();

}

}


示例代码0202

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap0202

{

public static void Main()

{

Console.WriteLine("Chapter 2
example 2: Phrases");

// step 1:
creation of a document-object

Document document = new Document();

try

{

// step
2:

// we
create a writer that listens to the document

// and
directs a PDF-stream to a file

PdfWriter.getInstance(document, new
FileStream("Chap0202.pdf",FileMode.Create));

// step
3: we open the document

document.Open();

// step
4: we Add a paragraph to the document

Phrase phrase0 = new Phrase();

Phrase phrase1 = new Phrase("(1) this is a phrase\n");

// In
this example the leading is passed as a parameter

Phrase phrase2 = new Phrase(24, "(2) this is a phrase with
leading 24. You can only see the difference if the line is long enough. Do you
see it? There is more space between this line and the previous one.\n");

// When
a Font is passed (explicitely or embedded in a chunk),

// the
default leading = 1.5 * size of the font

Phrase phrase3 = new Phrase("(3) this is a phrase with a red,
normal font Courier, size 20. As you can see the leading is automatically
changed.\n", FontFactory.getFont(FontFactory.COURIER, 20, Font.NORMAL, new Color(255, 0, 0)));

Phrase phrase4 = new Phrase(new Chunk("(4)
this is a phrase\n"));

Phrase phrase5 = new Phrase(18, new
Chunk("(5) this is a phrase in Helvetica, bold, red and size 16 with a
given leading of 18 points.\n", FontFactory.getFont(FontFactory.HELVETICA,
16, Font.BOLD, new Color(255, 0, 0))));

// A
Phrase can contains several chunks with different fonts

Phrase phrase6 = new Phrase("(6)");

Chunk chunk = new Chunk(" This is a font: ");

phrase6.Add(chunk);

phrase6.Add(new Chunk("Helvetica",
FontFactory.getFont(FontFactory.HELVETICA, 12)));

phrase6.Add(chunk);

phrase6.Add(new Chunk("Times New Roman",
FontFactory.getFont(FontFactory.TIMES_NEW_ROMAN, 12)));

phrase6.Add(chunk);

phrase6.Add(new Chunk("Courier",
FontFactory.getFont(FontFactory.COURIER, 12)));

phrase6.Add(chunk);

phrase6.Add(new Chunk("Symbol",
FontFactory.getFont(FontFactory.SYMBOL, 12)));

phrase6.Add(chunk);

phrase6.Add(new Chunk("ZapfDingBats",
FontFactory.getFont(FontFactory.ZAPFDINGBATS, 12)));

Phrase phrase7 = new Phrase("(7) if you don‘t Add a newline
yourself, all phrases are glued to eachother!");

document.Add(phrase1);

document.Add(phrase2);

document.Add(phrase3);

document.Add(phrase4);

document.Add(phrase5);

document.Add(phrase6);

document.Add(phrase7);

}

catch(DocumentException
de)

{

Console.Error.WriteLine(de.Message);

}

catch(IOException
ioe)

{

Console.Error.WriteLine(ioe.Message);

}

// step 5: we
close the document

document.Close();

}

}


示例代码0203

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap0203

{

public static void Main()

{

Console.WriteLine("Chapter 2
example 3: Greek Characters");

// step 1:
creation of a document-object

Document document = new Document();

try

{

// step
2:

// we
create a writer that listens to the document

// and
directs a PDF-stream to a file

PdfWriter.getInstance(document, new FileStream("Chap0203.pdf",FileMode.Create));

// step
3: we open the document

document.Open();

// step
4: we Add a paragraph to the document

document.Add(new Phrase("What is the " + (char) 945 + "-coefficient of the "

+ (char)
946 + "-factor in the " + (char) 947
+ "-equation?\n"));

for
(int i = 913; i < 970; i++)

{

document.Add(new Phrase(" " + i.ToString() + ":
" + (char) i));

}

}

catch(DocumentException
de)

{

Console.Error.WriteLine(de.Message);

}

catch(IOException
ioe)

{

Console.Error.WriteLine(ioe.Message);

}

// step 5: we
close the document

document.Close();

}

}


示例代码0204

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap0204

{

public static void Main()

{

Console.WriteLine("Chapter 2
example 4: Negative leading");

// step 1:
creation of a document-object

Document document = new Document();

try

{

// step
2:

// we
create a writer that listens to the document

// and
directs a PDF-stream to a file

PdfWriter.getInstance(document, new FileStream("Chap0204.pdf",
FileMode.Create));

// step
3: we open the document

document.Open();

// step
4: we Add a paragraph to the document

document.Add(new Phrase(16, "\n\n\n"));

document.Add(new Phrase(-16, "Hello, this is a very long
phrase to show you the somewhat odd effect of a negative leading. You can write
from bottom to top. This is not fully supported. It‘s something between a
feature and a bug."));

}

catch(DocumentException
de)

{

Console.Error.WriteLine(de.Message);

}

catch(IOException
ioe)

{

Console.Error.WriteLine(ioe.Message);

}

// step 5: we
close the document

document.Close();

}

}


示例代码0205

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap0205

{

public static void Main()

{

Console.WriteLine("Chapter 2
example 5: Paragraphs");

// step 1:
creation of a document-object

Document document = new Document();

try

{

// step
2:

// we
create a writer that listens to the document

// and
directs a PDF-stream to a file

PdfWriter.getInstance(document, new FileStream("Chap0205.pdf",
FileMode.Create));

// step
3: we open the document

document.Open();

// step
4: we Add a paragraph to the document

Paragraph p1 = new Paragraph(new
Chunk("This is my first paragraph. ",

FontFactory.getFont(FontFactory.HELVETICA,
10)));

p1.Add("The leading of this
paragraph is calculated automagically. ");

p1.Add("The default leading
is 1.5 times the fontsize. ");

p1.Add(new
Chunk("You can Add chunks "));

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

p1.Add(new
Phrase("Unless you change the leading with the method setLeading, the
leading doesn‘t change if you Add text with another leading. This can lead to
some problems.", FontFactory.getFont(FontFactory.HELVETICA, 18)));

document.Add(p1);

Paragraph p2 = new Paragraph(new
Phrase("This is my second paragraph. ",

FontFactory.getFont(FontFactory.HELVETICA,
12)));

p2.Add("As you can see, it
started on a new line.");

document.Add(p2);

Paragraph p3 = new Paragraph("This is my third
paragraph.",

FontFactory.getFont(FontFactory.HELVETICA,
12));

document.Add(p3);

}

catch(DocumentException
de)

{

Console.Error.WriteLine(de.Message);

}

catch(IOException
ioe)

{

Console.Error.WriteLine(ioe.Message);

}

// step 5: we
close the document

document.Close();

}

}


示例代码0206

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap0206

{

public static void Main()

{

Console.WriteLine("Chapter 2
example 6: keeping a paragraph together");

// step 1:
creation of a document-object

Document document = new Document(PageSize.A6);

try

{

// step
2:

// we
create a writer that listens to the document

// and
directs a PDF-stream to a file

PdfWriter writer =
PdfWriter.getInstance(document, new
FileStream("Chap0206.pdf", FileMode.Create));

// step
3: we open the document

document.Open();

// step
4:

Paragraph p;

p = new
Paragraph("GALLIA est omnis divisa in partes tres, quarum unam incolunt
Belgae, aliam Aquitani, tertiam qui ipsorum lingua Celtae, nostra Galli
appellantur.  Hi omnes lingua,
institutis, legibus inter se differunt. Gallos ab Aquitanis Garumna flumen, a
Belgis Matrona et Sequana dividit. Horum omnium fortissimi sunt Belgae,
propterea quod a cultu atque humanitate provinciae longissime absunt, minimeque
ad eos mercatores saepe commeant atque ea quae ad effeminandos animos pertinent
important, proximique sunt Germanis, qui trans Rhenum incolunt, quibuscum
continenter bellum gerunt.  Qua de causa
Helvetii quoque reliquos Gallos virtute praecedunt, quod fere cotidianis
proeliis cum Germanis contendunt, cum aut suis finibus eos prohibent aut ipsi
in eorum finibus bellum gerunt.",
FontFactory.getFont(FontFactory.HELVETICA, 12));

p.KeepTogether = true;

document.Add(p);

p = new
Paragraph("[Eorum una, pars, quam Gallos obtinere dictum est, initium
capit a flumine Rhodano, continetur Garumna flumine, Oceano, finibus Belgarum,
attingit etiam ab Sequanis et Helvetiis flumen Rhenum, vergit ad septentriones.
Belgae ab extremis Galliae finibus oriuntur, pertinent ad inferiorem partem
fluminis Rheni, spectant in septentrionem et orientem solem. Aquitania a
Garumna flumine ad Pyrenaeos montes et eam partem Oceani quae est ad Hispaniam
pertinet; spectat inter occasum solis et septentriones.]",
FontFactory.getFont(FontFactory.HELVETICA, 12));

p.KeepTogether = true;

document.Add(p);

p
= new Paragraph("Apud Helvetios longe
nobilissimus fuit et ditissimus Orgetorix. 
Is M. Messala, [et P.] M.  Pisone
consulibus regni cupiditate inductus coniurationem nobilitatis fecit et
civitati persuasit ut de finibus suis cum omnibus copiis exirent:  perfacile esse, cum virtute omnibus
praestarent, totius Galliae imperio potiri. 
Id hoc facilius iis persuasit, quod undique loci natura Helvetii
continentur:  una ex parte flumine Rheno
latissimo atque altissimo, qui agrum Helvetium a Germanis dividit; altera ex
parte monte Iura altissimo, qui est inter Sequanos et Helvetios; tertia lacu
Lemanno et flumine Rhodano, qui provinciam nostram ab Helvetiis dividit.  His rebus fiebat ut et minus late vagarentur
et minus facile finitimis bellum inferre possent; qua ex parte homines bellandi
cupidi magno dolore adficiebantur.  Pro
multitudine autem hominum et pro gloria belli atque fortitudinis angustos se
fines habere arbitrabantur, qui in longitudinem milia passuum CCXL, in
latitudinem CLXXX patebant.", FontFactory.getFont(FontFactory.HELVETICA,
12));

p.KeepTogether = true;

document.Add(p);

p = new
Paragraph("His rebus Adducti et auctoritate Orgetorigis permoti
constituerunt ea quae ad proficiscendum pertinerent comparare, iumentorum et
carrorum quam maximum numerum coemere, sementes quam maximas facere, ut in
itinere copia frumenti suppeteret, cum proximis civitatibus pacem et amicitiam
confirmare.  Ad eas res conficiendas
biennium sibi satis esse duxerunt; in tertium annum profectionem lege
confirmant.  Ad eas res conficiendas
Orgetorix deligitur.  Is sibi legationem
ad civitates suscipit.  In eo itinere
persuadet Castico, Catamantaloedis filio, Sequano, cuius pater regnum in
Sequanis multos annos obtinuerat et a senatu populi Romani amicus appellatus erat,
ut regnum in civitate sua occuparet, quod pater ante habuerit; itemque
Dumnorigi Haeduo, fratri Diviciaci, qui eo tempore principatum in civitate
obtinebat ac maxime plebi acceptus erat, ut idem conaretur persuadet eique
filiam suam in matrimonium dat. 
Perfacile factu esse illis probat conata perficere, propterea quod ipse
suae civitatis imperium obtenturus esset: 
non esse dubium quin totius Galliae plurimum Helvetii possent; se suis
copiis suoque exercitu illis regna conciliaturum confirmat.  Hac oratione Adducti inter se fidem et ius
iurandum dant et regno occupato per tres potentissimos ac firmissimos populos
totius Galliae sese potiri posse sperant.",
FontFactory.getFont(FontFactory.HELVETICA, 12));

p.KeepTogether = true;

document.Add(p);

p = new
Paragraph("Ea res est Helvetiis per indicium enuntiata.  Moribus suis Orgetoricem ex vinculis causam
dicere coegerunt; damnatum poenam sequi oportebat, ut igni cremaretur.  Die constituta causae dictionis Orgetorix ad
iudicium omnem suam familiam, ad hominum milia decem, undique coegit, et omnes
clientes obaeratosque suos, quorum magnum numerum habebat, eodem conduxit; per
eos ne causam diceret se eripuit.  Cum
civitas ob eam rem incitata armis ius suum exequi conaretur multitudinemque
hominum ex agris magistratus cogerent, Orgetorix mortuus est; neque abest
suspicio, ut Helvetii arbitrantur, quin ipse sibi mortem consciverit.",
FontFactory.getFont(FontFactory.HELVETICA, 12));

p.KeepTogether = true;

document.Add(p);

}

catch(DocumentException
de)

{

Console.Error.WriteLine(de.Message);

}

catch(IOException
ioe)

{

Console.Error.WriteLine(ioe.Message);

}

// step 5: we
close the document

document.Close();

}

}


示例代码0207

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap0207

{

public static void Main()

{

Console.WriteLine("Chapter 2
example 7: font propagation");

// step 1:
creation of a document-object

Document document = new Document();

try

{

// step
2:

// we
create a writer that listens to the document

// and
directs a PDF-stream to a file

PdfWriter writer =
PdfWriter.getInstance(document, new
FileStream("Chap0207.pdf", FileMode.Create));

// step
3: we open the document

document.Open();

// step
4:

// we
Add some content

Phrase myPhrase = new Phrase("Hello 1! ", new Font(Font.TIMES_NEW_ROMAN, 8, Font.BOLD));

myPhrase.Add(new Phrase("some other font ", new Font(Font.HELVETICA, 8)));

myPhrase.Add(new Phrase("This is the end of the
sentence.\n", new
Font(Font.TIMES_NEW_ROMAN, 8, Font.ITALIC)));

document.Add(myPhrase);

myPhrase = new Phrase("Hello 1bis! ",
FontFactory.getFont(FontFactory.TIMES_NEW_ROMAN, 8, Font.BOLD));

myPhrase.Add(new Phrase("some other font ",
FontFactory.getFont(FontFactory.HELVETICA, 8)));

myPhrase.Add(new Phrase("This is the end of the
sentence.\n", FontFactory.getFont(FontFactory.TIMES_NEW_ROMAN, 8,
Font.ITALIC)));

document.Add(myPhrase);

Paragraph myParagraph = new Paragraph("Hello 2! ", new Font(Font.TIMES_NEW_ROMAN, 8, Font.BOLD));

myParagraph.Add(new Paragraph("This is the end of the
sentence.", new Font(Font.TIMES_NEW_ROMAN,
8, Font.ITALIC)));

document.Add(myParagraph);

myParagraph = new Paragraph(12);

myParagraph.Add(new Paragraph("Hello 3! ", new Font(Font.TIMES_NEW_ROMAN, 8, Font.BOLD)));

myParagraph.Add(new Paragraph("This is the end of the
sentence.", new Font(Font.TIMES_NEW_ROMAN,
8, Font.ITALIC)));

document.Add(myParagraph);

myPhrase = new Phrase(12);

myPhrase.Add(new Phrase("Hello 4! ", new Font(Font.TIMES_NEW_ROMAN, 8, Font.BOLD)));

myPhrase.Add(new Phrase("This is the end of the
sentence.\n", new
Font(Font.TIMES_NEW_ROMAN, 8, Font.ITALIC)));

document.Add(myPhrase);

}

catch(DocumentException
de)

{

Console.Error.WriteLine(de.Message);

}

catch(IOException
ioe)

{

Console.Error.WriteLine(ioe.Message);

}

// step 5: we
close the document

document.Close();

}

}


示例代码0208

using System;

using System.IO;

using System.Collections;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap0208 :
ISplitCharacter

{

public static void Main()

{

Console.WriteLine("Chapter 2
example 8: split character");

// step 1:
creation of a document-object

Document document = new Document();

try

{

// step 2:

// we
create a writer that listens to the document

// and
directs a PDF-stream to a file

PdfWriter writer =
PdfWriter.getInstance(document, new
FileStream("Chap0208.pdf", FileMode.Create));

// step
3: we Open the document

document.Open();

// step
4:

// we
Add some content

String text =
"Some.text.to.show.the.splitting.action.of.the.interface.";

Chap0208 split = new Chap0208();

Chunk ck = new Chunk(text, FontFactory.getFont(FontFactory.HELVETICA, 24));

Paragraph p = new Paragraph(24, ck);

document.Add(new Paragraph("Normal split."));

document.Add(p);

ck = new
Chunk(text, FontFactory.getFont(FontFactory.HELVETICA, 24));

ck.setSplitCharacter(split);

p = new
Paragraph(24, ck);

document.Add(new Paragraph("The dot ‘.‘ is the split
character."));

document.Add(p);

}

catch(DocumentException
de)

{

Console.Error.WriteLine(de.Message);

}

catch(IOException
ioe)

{

Console.Error.WriteLine(ioe.Message);

}

// step 5: we
close the document

document.Close();

}

/**

* Returns <CODE>true</CODE> if the
character can split a line.

* @param c the character

* @return <CODE>true</CODE> if the
character can split a line

*/

public bool isSplitCharacter(char
c)

{

return
(c == ‘.‘);

}

}


示例代码0301

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap0301

{

public static void Main()

{

Console.WriteLine("Chapter 3 example
1: Anchors");

// step 1:
creation of a document-object

Document document = new Document();

try

{

// step
2:

// we
create a writer that listens to the document

// and
directs a PDF-stream to a file

PdfWriter.getInstance(document,
new FileStream("Chap0301.pdf",
FileMode.Create));

// step
3: we Open the document

document.Open();

// step
4:

Paragraph paragraph = new Paragraph("Please visit my ");

Anchor anchor1 = new Anchor("website (external reference)",
FontFactory.getFont(FontFactory.HELVETICA, 12, Font.UNDERLINE, new Color(0, 0, 255)));

anchor1.Reference =
"http://itextsharp.sourceforge.net";

anchor1.Name = "top";

paragraph.Add(anchor1);

paragraph.Add(new
Chunk(".\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"));

document.Add(paragraph);

Anchor anchor2 = new Anchor("please jump to a local
destination", FontFactory.getFont(FontFactory.HELVETICA, 12, Font.NORMAL, new Color(0, 0, 255)));

anchor2.Reference =
"#top";

document.Add(anchor2);

}

catch(DocumentException
de)

{

Console.Error.WriteLine(de.Message);

}

catch(IOException
ioe)

{

Console.Error.WriteLine(ioe.Message);

}

// step 5: we
close the document

document.Close();

}

}


示例代码0302

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap0302

{

public static void Main()

{

Console.WriteLine("Chapter 3
example 2: Lists");

// step 1:
creation of a document-object

Document document = new Document();

try

{

// step
2:

// we
create a writer that listens to the document

// and
directs a PDF-stream to a file

PdfWriter.getInstance(document, new FileStream("Chap0302.pdf", FileMode.Create));

// step
3: we Open the document

document.Open();

// step
4:

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

document.Add(new Paragraph("some books I really
like:"));

ListItem listItem;

list = new
List(true, 15);

listItem = new ListItem("When Harlie was one",
FontFactory.getFont(FontFactory.TIMES_NEW_ROMAN, 12));

listItem.Add(new Chunk(" by David Gerrold",
FontFactory.getFont(FontFactory.TIMES_NEW_ROMAN, 11, Font.ITALIC)));

list.Add(listItem);

listItem = new ListItem("The World according to Garp",
FontFactory.getFont(FontFactory.TIMES_NEW_ROMAN, 12));

listItem.Add(new Chunk(" by John Irving",
FontFactory.getFont(FontFactory.TIMES_NEW_ROMAN, 11, Font.ITALIC)));

list.Add(listItem);

listItem = new ListItem("Decamerone",
FontFactory.getFont(FontFactory.TIMES_NEW_ROMAN, 12));

listItem.Add(new Chunk(" by Giovanni Boccaccio",
FontFactory.getFont(FontFactory.TIMES_NEW_ROMAN, 11, Font.ITALIC)));

list.Add(listItem);

document.Add(list);

Paragraph paragraph = new Paragraph("some movies I really
like:");

list = new
List(false, 10);

list.Add("Wild At
Heart");

list.Add("Casablanca");

list.Add("When Harry met
Sally");

list.Add("True
Romance");

list.Add("Le mari de la
coiffeuse");

paragraph.Add(list);

document.Add(paragraph);

document.Add(new Paragraph("Some authors I really
like:"));

list = new
List(false, 20);

list.ListSymbol = new Chunk("\u2022",
FontFactory.getFont(FontFactory.HELVETICA, 20, Font.BOLD));

listItem = new ListItem("Isaac Asimov");

list.Add(listItem);

List sublist;

sublist = new
List(true, 10);

sublist.ListSymbol = new Chunk("",
FontFactory.getFont(FontFactory.HELVETICA, 8));

sublist.Add("The Foundation
Trilogy");

sublist.Add("The Complete
Robot");

sublist.Add("Caves of
Steel");

sublist.Add("The Naked
Sun");

list.Add(sublist);

listItem = new ListItem("John Irving");

list.Add(listItem);

sublist = new
List(true, 10);

sublist.ListSymbol = new Chunk("",
FontFactory.getFont(FontFactory.HELVETICA, 8));

sublist.Add("The World
according to Garp");

sublist.Add("Hotel New
Hampshire");

sublist.Add("A prayer for
Owen Meany");

sublist.Add("Widow for a
year");

list.Add(sublist);

listItem = new ListItem("Kurt Vonnegut");

list.Add(listItem);

sublist = new
List(true, 10);

sublist.ListSymbol = new Chunk("",
FontFactory.getFont(FontFactory.HELVETICA, 8));

sublist.Add("Slaughterhouse
5");

sublist.Add("Welcome to the
Monkey House");

sublist.Add("The great
pianola");

sublist.Add("Galapagos");

list.Add(sublist);

document.Add(list);

}

catch(DocumentException
de)

{

Console.Error.WriteLine(de.Message);

}

catch(IOException
ioe)

{

Console.Error.WriteLine(ioe.Message);

}

// step 5: we
close the document

document.Close();

}

}


示例代码0303

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap0303

{

public static void Main()

{

Console.WriteLine("Chapter 3
example 3: Annotations");

// step 1:
creation of a document-object

Document document = new Document();

try

{

// step
2:

// we
create a writer that listens to the document

// and
directs a PDF-stream to a file

PdfWriter.getInstance(document, new FileStream("Chap0303.pdf",
FileMode.Create));

// step
3: we Open the document

document.Open();

// step
4:

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

document.Add(new Paragraph("some books I really
like:"));

document.Add(new Annotation("books", "This is
really a very short list, I like a lot of books."));

ListItem listItem;

list = new
List(true, 15);

listItem = new ListItem("When Harlie was one",
FontFactory.getFont(FontFactory.TIMES_NEW_ROMAN, 12));

listItem.Add(new Chunk(" by David Gerrold",
FontFactory.getFont(FontFactory.TIMES_NEW_ROMAN, 11, Font.ITALIC)));

list.Add(listItem);

listItem = new ListItem("The World according to Garp",
FontFactory.getFont(FontFactory.TIMES_NEW_ROMAN, 12));

listItem.Add(new Chunk(" by John Irving",
FontFactory.getFont(FontFactory.TIMES_NEW_ROMAN, 11, Font.ITALIC)));

list.Add(listItem);

listItem = new ListItem("Decamerone",
FontFactory.getFont(FontFactory.TIMES_NEW_ROMAN, 12));

listItem.Add(new Chunk(" by Giovanni Boccaccio",
FontFactory.getFont(FontFactory.TIMES_NEW_ROMAN, 11, Font.ITALIC)));

list.Add(listItem);

document.Add(list);

document.Add(new Phrase("Some authors I really like:"));

document.Add(new Annotation("authors", "Maybe it‘s
because I wanted to be an writer myself that I wrote iText."));

list = new
List(false, 20);

list.ListSymbol = new Chunk("*",
FontFactory.getFont(FontFactory.HELVETICA, 20, Font.BOLD));

listItem = new ListItem("Isaac Asimov");

list.Add(listItem);

List sublist;

sublist = new
List(true, 10);

sublist.ListSymbol = new Chunk("",
FontFactory.getFont(FontFactory.HELVETICA, 8));

sublist.Add("The Foundation
Trilogy");

sublist.Add("The Complete
Robot");

sublist.Add("Caves of
Steel");

sublist.Add("The Naked
Sun");

list.Add(sublist);

listItem = new ListItem("John Irving");

list.Add(listItem);

sublist = new
List(true, 10);

sublist.ListSymbol = new Chunk("",
FontFactory.getFont(FontFactory.HELVETICA, 8));

sublist.Add("The World according
to Garp");

sublist.Add("Hotel New
Hampshire");

sublist.Add("A prayer for
Owen Meany");

sublist.Add("Widow for a
year");

list.Add(sublist);

listItem = new ListItem("Kurt Vonnegut");

list.Add(listItem);

sublist = new
List(true, 10);

sublist.ListSymbol = new Chunk("",
FontFactory.getFont(FontFactory.HELVETICA, 8));

sublist.Add("Slaughterhouse
5");

sublist.Add("Welcome to the
Monkey House");

sublist.Add("The great
pianola");

sublist.Add("Galapagos");

list.Add(sublist);

document.Add(list);

}

catch(DocumentException
de)

{

Console.Error.WriteLine(de.Message);

}

catch(IOException
ioe)

{

Console.Error.WriteLine(ioe.Message);

}

// step 5: we
close the document

document.Close();

}

}


示例代码0304

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap0304

{

public static void Main()

{

Console.WriteLine("Chapter 3
example 4: annotations at absolute positions");

// step 1:
creation of a document-object

Document document = new Document(PageSize.A4, 50, 50, 50, 50);

try

{

// step
2:

// we
create a writer that listens to the document

PdfWriter writer =
PdfWriter.getInstance(document, new
FileStream("Chap0304.pdf", FileMode.Create));

// step
3: we Open the document

document.Open();

// step
4: we Add some content

PdfContentByte cb =
writer.DirectContent;

// draw
a rectangle

cb.setRGBColorStroke(0x00, 0x00,
0xFF);

cb.rectangle(100, 700, 100, 100);

cb.stroke();

Annotation annot = new Annotation(100f, 700f, 200f, 800f,
"http://itextsharp.sourceforge.net");

document.Add(annot);

cb.setRGBColorStroke(0xFF, 0x00,
0x00);

cb.rectangle(200, 700, 100, 100);

cb.stroke();

try

{

document.Add(new Annotation(200f, 700f, 300f, 800f, new
Uri("http://itextsharp.sourceforge.net")));

}

catch

{

}

cb.setRGBColorStroke(0x00, 0xFF,
0x00);

cb.rectangle(300, 700, 100, 100);

cb.stroke();

document.Add(new Annotation(300f, 700f, 400f, 800f,
"c:/winnt/notepad.exe", null, null, null));

cb.setRGBColorStroke(0x00, 0x00,
0xFF);

cb.rectangle(100, 500, 100, 100);

cb.stroke();

document.Add(new Annotation("annotation", "This
annotation is placed on an absolute position", 100f, 500f, 200f, 600f));

cb.setRGBColorStroke(0xFF, 0x00,
0x00);

cb.rectangle(200, 500, 100, 100);

cb.stroke();

document.Add(new Annotation(200f, 500f, 300f, 600f,
"Chap1102a.pdf", "test"));

cb.setRGBColorStroke(0x00, 0xFF,
0x00);

cb.rectangle(300, 500, 100, 100);

cb.stroke();

document.Add(new Annotation(300f, 500f, 400f, 600f,
"Chap1102b.pdf", 3));

}

catch
(Exception de)

{

Console.WriteLine(de.StackTrace);

}

// step 5: we
close the document

document.Close();

}

}


示例代码0401

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap0401

{

public static void Main()

{

Console.WriteLine("Chapter 4
example 1: Headers en Footers");

// step 1:
creation of a document-object

Document document = new Document();

try

{

// step
2: we create a writer that listens to the document

PdfWriter.getInstance(document, new FileStream("Chap0401.pdf",
FileMode.Create));

// we
Add a Footer that will show up on PAGE 1

HeaderFooter footer = new HeaderFooter(new
Phrase("This is page: "), true);

footer.Border =
Rectangle.NO_BORDER;

document.Footer = footer;

// step
3: we open the document

document.Open();

// we
Add a Header that will show up on PAGE 2

HeaderFooter header = new HeaderFooter(new
Phrase("This is a header"), false);

document.Header = header;

// step
4: we Add content to the document

// PAGE
1

document.Add(new Paragraph("Hello World"));

// we
trigger a page break

document.newPage();

// PAGE
2

// we
Add some more content

document.Add(new Paragraph("Hello Earth"));

// we
remove the header starting from PAGE 3

document.resetHeader();

// we
trigger a page break

document.newPage();

// PAGE
3

// we
Add some more content

document.Add(new Paragraph("Hello Sun"));

document.Add(new Paragraph("Remark: the header has
vanished!"));

// we
reset the page numbering

document.resetPageCount();

// we
trigger a page break

document.newPage();

// PAGE
4

// we
Add some more content

document.Add(new Paragraph("Hello Moon"));

document.Add(new Paragraph("Remark: the pagenumber has been
reset!"));

}

catch(DocumentException
de)

{

Console.Error.WriteLine(de.Message);

}

catch(IOException
ioe)

{

Console.Error.WriteLine(ioe.Message);

}

// step 5: we
close the document

document.Close();

}

}


示例代码0402

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap0402

{

public static void Main()

{

Console.WriteLine("Chapter 4
example 2: Chapters and Sections");

// step 1:
creation of a document-object

Document document = new Document(PageSize.A4, 50, 50, 50, 50);

try

{

// step
2: we create a writer that listens to the document

PdfWriter writer =
PdfWriter.getInstance(document, new
FileStream("Chap0402.pdf", FileMode.Create));

// step
3: we open the document

document.Open();

// step
4: we Add content to the document

// we
define some fonts

Font chapterFont =
FontFactory.getFont(FontFactory.HELVETICA, 24, Font.NORMAL, new Color(255, 0, 0));

Font sectionFont =
FontFactory.getFont(FontFactory.HELVETICA, 20, Font.NORMAL, new Color(0, 0, 255));

Font subsectionFont =
FontFactory.getFont(FontFactory.HELVETICA, 18, Font.BOLD, new Color(0, 64, 64));

// we
create some paragraphs

Paragraph blahblah = new Paragraph("blah blah blah blah blah blah
blaah blah blah blah blah blah blah blah blah blah blah blah blah blah blah
blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah
blah blah blah blah blah blah blah blah blah blah blah blah blah blah");

Paragraph blahblahblah = new Paragraph("blah blah blah blah blah blah
blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah
blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah
blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah
blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah
blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah
blaah blah blah blah blah blah blah blah blah blah blah blah blah blah blah
blah blah blah");

// this
loop will create 7 chapters

for
(int i = 1; i < 8; i++)

{

Paragraph cTitle = new Paragraph("This is chapter " + i,
chapterFont);

Chapter chapter = new Chapter(cTitle, i);

if
(i == 4)

{

blahblahblah.Alignment =
Element.ALIGN_JUSTIFIED;

blahblah.Alignment =
Element.ALIGN_JUSTIFIED;

chapter.Add(blahblah);

}

if
(i == 5)

{

blahblahblah.Alignment =
Element.ALIGN_CENTER;

blahblah.Alignment =
Element.ALIGN_RIGHT;

chapter.Add(blahblah);

}

//
Add a table in the 6th chapter

if
(i == 6)

{

blahblah.Alignment =
Element.ALIGN_JUSTIFIED;

}

//
in every chapter 3 sections will be Added

for (int j = 1; j
< 4; j++)

{

Paragraph sTitle = new Paragraph("This is section " + j +
" in chapter " + i, sectionFont);

Section section =
chapter.addSection(sTitle, 1);

//
in all chapters except the 1st one, some extra text is Added to section 3

if
(j == 3 && i > 1)

{

section.Add(blahblah);

}

//
in every section 3 subsections are Added

for
(int k = 1; k < 4; k++)

{

Paragraph subTitle =
new Paragraph("This is subsection " +
k + " of section " + j, subsectionFont);

Section subsection =
section.addSection(subTitle, 3);

if (k == 1 && j == 3)

{

subsection.Add(blahblahblah);

}

subsection.Add(blahblah);

}

if
(j == 2 && i > 2)

{

section.Add(blahblahblah);

}

}

document.Add(chapter);

}

}

catch(Exception
de)

{

Console.Error.WriteLine(de.StackTrace);

}

// step 5: we
close the document

document.Close();

}

}


示例代码0403

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap0403

{

public static void Main()

{

Console.WriteLine("Chapter 4
example 3: Chapters and Sections");

// step 1:
creation of a document-object

Document document = new Document(PageSize.A4, 50, 50, 50, 50);

try

{

// step
2: we create a writer that listens to the document

PdfWriter
writer=PdfWriter.getInstance(document, new
FileStream("Chap0403.pdf", FileMode.Create));

// step
3: we open the document

document.Open();

// step
4: we Add content to the document

Paragraph title1 = new Paragraph("This is Chapter 1",
FontFactory.getFont(FontFactory.HELVETICA, 18, Font.BOLDITALIC, new Color(0, 0, 255)));

Chapter chapter1 = new Chapter(title1, 2);

chapter1.NumberDepth = 0;

Paragraph someText = new Paragraph("This is some text");

chapter1.Add(someText);

Paragraph title11 = new Paragraph("This is Section 1 in Chapter
1", FontFactory.getFont(FontFactory.HELVETICA, 16, Font.BOLD, new Color(255, 0, 0)));

Section section1 =
chapter1.addSection(title11);

Paragraph someSectionText = new Paragraph("This is some silly paragraph in a
chapter and/or section. It contains some text to test the functionality of
Chapters and Section.");

section1.Add(someSectionText);

document.Add(chapter1);

Paragraph title2 = new Paragraph("This is Chapter 2",
FontFactory.getFont(FontFactory.HELVETICA, 18, Font.BOLDITALIC, new Color(0, 0, 255)));

Chapter chapter2 = new Chapter(title2, 2);

chapter2.NumberDepth = 0;

chapter2.Add(someText);

Paragraph title21 = new Paragraph("This is Section 1 in Chapter
2", FontFactory.getFont(FontFactory.HELVETICA, 16, Font.BOLD, new Color(255, 0, 0)));

Section section2 =
chapter2.addSection(title21);

section2.Add(someSectionText);

chapter2.BookmarkOpen = false;

document.Add(chapter2);

}

catch(Exception
de)

{

Console.Error.WriteLine(de.StackTrace);

}

// step 5: we
close the document

document.Close();

}

}


示例代码0404

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap0404

{

public static void Main()

{

Console.WriteLine("Chapter 4
example 4: Simple Graphic");

// step 1:
creation of a document-object

Document document = new Document();

try

{

// step
2:

// we
create a writer that listens to the document

// and
directs a PDF-stream to a file

PdfWriter.getInstance(document, new FileStream("Chap0404.pdf",
FileMode.Create));

// step 3:
we open the document

document.Open();

// step
4: we add a Graphic to the document

Graphic grx = new Graphic();

// add a
rectangle

grx.rectangle(100, 700, 100, 100);

// add
the diagonal

grx.moveTo(100, 700);

grx.lineTo(200, 800);

//
stroke the lines

grx.stroke();

document.Add(grx);

}

catch(DocumentException
de)

{

Console.Error.WriteLine(de.Message);

}

catch(IOException
ioe)

{

Console.Error.WriteLine(ioe.Message);

}

// step 5: we
close the document

document.Close();

}

}


示例代码0405

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap0405

{

public static void Main()

{

Console.WriteLine("Chapter 4
example 5: page borders and horizontal lines");

// step 1:
creation of a document-object

Document document = new Document();

try

{

// step
2: we create a writer that listens to the document

PdfWriter.getInstance(document, new FileStream("Chap0405.pdf",
FileMode.Create));

// step
3: we open the document

document.Open();

// step
4: we Add a paragraph to the document

Graphic g = new Graphic();

g.setBorder(3f, 5f);

document.Add(g);

document.Add(new Paragraph("Hello World"));

document.Add(new Paragraph("Hello World\n\n"));

g = new
Graphic();

g.setHorizontalLine(5f, 100f);

document.Add(g);

document.Add(new Paragraph("Hello World"));

document.Add(new Paragraph("Hello World\n\n"));

g = new
Graphic();

g.setHorizontalLine(2f, 80f, new Color(0xFF, 0x00, 0x00));

document.Add(g);

document.Add(new Paragraph("Hello World"));

}

catch(DocumentException
de)

{

Console.Error.WriteLine(de.Message);

}

catch(IOException
ioe)

{

Console.Error.WriteLine(ioe.Message);

}

// step 5: we
close the document

document.Close();

}

}


示例代码0501

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap0501

{

public static void Main()

{

Console.WriteLine("Chapter 5
example 1: my first table");

// step 1:
creation of a document-object

Document document = new Document();

try

{

// step
2:

// we
create a writer that listens to the document

// and
directs a PDF-stream to a file

PdfWriter.getInstance(document, new FileStream("Chap0501.pdf",
FileMode.Create));

// step
3: we open the document

document.Open();

// step
4: we create a table and add it to the document

Table aTable = new Table(2,2);   
// 2 rows, 2 columns

aTable.addCell("0.0");

aTable.addCell("0.1");

aTable.addCell("1.0");

aTable.addCell("1.1");

document.Add(aTable);

}

catch(DocumentException
de)

{

Console.Error.WriteLine(de.Message);

}

catch(IOException
ioe)

{

Console.Error.WriteLine(ioe.Message);

}

// step 5: we
close the document

document.Close();

}

}


示例代码0502

using System;

using System.IO;

using System.Drawing;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap0502

{

public static void Main()

{

Console.WriteLine("Chapter 5
example 2: adding cells at a specific position");

// step 1:
creation of a document-object

Document document = new Document();

try

{

// step
2:

// we
create a writer that listens to the document

// and
directs a PDF-stream to a file

PdfWriter.getInstance(document, new FileStream("Chap0502.pdf",
FileMode.Create));

// step
3: we open the document

document.Open();

// step
4: we create a table and add it to the document

Table aTable;

aTable = new
Table(4,4);    //
4 rows, 4 columns

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

document.newPage();

aTable = new
Table(4,4);    //
4 rows, 4 columns

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

}

catch(DocumentException
de)

{

Console.Error.WriteLine(de.Message);

}

catch(IOException
ioe)

{

Console.Error.WriteLine(ioe.Message);

}

// step 5: we
close the document

document.Close();

}

}


示例代码0503

using System;

using System.IO;

using System.Drawing;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap0503

{

public static void Main()

{

Console.WriteLine("Chapter 5
example 3: rows added automatically");

// step 1:
creation of a document-object

Document document = new Document();

try

{

// step
2:

// we
create a writer that listens to the document

// and
directs a PDF-stream to a file

PdfWriter.getInstance(document, new FileStream("Chap0503.pdf",
FileMode.Create));

// step
3: we open the document

document.Open();

// step
4: we create a table and add it to the document

Table aTable = new Table(4,4);   
// 4 rows, 4 columns

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

aTable.addCell("5.2", new Point(5,2));

aTable.addCell("6.1", new Point(6,1));

aTable.addCell("5.0", new Point(5,0));

document.Add(aTable);

}

catch(DocumentException
de)

{

Console.Error.WriteLine(de.Message);

}

catch(IOException
ioe)

{

Console.Error.WriteLine(ioe.Message);

}

// step 5: we
close the document

document.Close();

}

}


示例代码0504

using System;

using System.IO;

using System.Drawing;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap0504

{

public static void Main()

{

Console.WriteLine("Chapter 5
example 4: adding columns");

// step 1:
creation of a document-object

Document document = new Document();

try

{

// step
2:

// we
create a writer that listens to the document

// and
directs a PDF-stream to a file

PdfWriter.getInstance(document, new FileStream("Chap0504.pdf",
FileMode.Create));

// step
3: we open the document

document.Open();

// step
4: we create a table and add it to the document

Table aTable = new Table(2,2);   
// 2 rows, 2 columns

aTable.AutoFillEmptyCells = true;

aTable.addCell("0.0");

aTable.addCell("0.1");

aTable.addCell("1.0");

aTable.addCell("1.1");

aTable.addColumns(2);

float[]
f = {1f, 1f, 1f, 1f};

aTable.Widths = f;

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

aTable.addCell("5.2", new Point(5,2));

aTable.addCell("6.1", new Point(6,1));

aTable.addCell("5.0", new Point(5,0));

document.Add(aTable);

}

catch(DocumentException
de)

{

Console.Error.WriteLine(de.Message);

}

catch(IOException
ioe)

{

Console.Error.WriteLine(ioe.Message);

}

// step 5: we
close the document

document.Close();

}

}


示例代码0505

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap0505

{

public static void Main()

{

Console.WriteLine("Chapter 5
example 5: colspan, rowspan, padding, spacing, colors");

// step 1:
creation of a document-object

Document document = new Document();

try

{

// step
2:

// we
create a writer that listens to the document

// and
directs a PDF-stream to a file

PdfWriter.getInstance(document, new FileStream("Chap0505.pdf", FileMode.Create));

// step
3: we open the document

document.Open();

// step
4: we create a table and add it to the document

Table table = new Table(3);

table.BorderWidth = 1;

table.BorderColor = new Color(0, 0, 255);

table.Padding = 5;

table.Spacing = 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 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 Color(0xC0, 0xC0, 0xC0);

table.addCell(cell);

table.addCell("cell
test2");

document.Add(table);

}

catch(DocumentException
de)

{

Console.Error.WriteLine(de.Message);

}

catch(IOException
ioe)

{

Console.Error.WriteLine(ioe.Message);

}

// step 5: we
close the document

document.Close();

}

}


示例代码0506

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap0506

{

public static void Main()

{

Console.WriteLine("Chapter 5
example 6: spacing, padding, alignment");

// step 1:
creation of a document-object

Document document = new Document();

try

{

// step
2:

// we
create a writer that listens to the document

// and
directs a PDF-stream to a file

PdfWriter.getInstance(document, new FileStream("Chap0506.pdf",
FileMode.Create));

// step
3: we open the document

document.Open();

// step
4: we create a table and add it to the document

Table table = new Table(3);

table.BorderWidth = 1;

table.BorderColor = new Color(0, 0, 255);

table.Padding = 3;

table.Spacing = 1;

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 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.HorizontalAlignment =
Element.ALIGN_CENTER;

cell.VerticalAlignment =
Element.ALIGN_MIDDLE;

cell.BackgroundColor = new Color(0xC0, 0xC0, 0xC0);

table.addCell(cell);

table.addCell("cell
test2");

document.Add(table);

}

catch(DocumentException
de)

{

Console.Error.WriteLine(de.Message);

}

catch(IOException
ioe)

{

Console.Error.WriteLine(ioe.Message);

}

// step 5: we
close the document

document.Close();

}

}


示例代码0507

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap0507

{

public static void Main()

{

Console.WriteLine("Chapter 5
example 7: borders");

// step 1:
creation of a document-object

Document document = new Document();

try

{

// step
2:

// we
create a writer that listens to the document

// and
directs a PDF-stream to a file

PdfWriter.getInstance(document, new FileStream("Chap0507.pdf",
FileMode.Create));

// step
3: we open the document

document.Open();

// step
4: we create a table and add it to the document

Table table = new Table(3);

table.BorderWidth = 1;

table.BorderColor = new Color(0, 0, 255);

table.Border = Rectangle.TOP |
Rectangle.BOTTOM;

table.Padding = 5;

table.Spacing = 5;

Cell cell = new Cell("header");

cell.Header = true;

cell.BorderWidth = 3;

cell.Border = Rectangle.TOP |
Rectangle.BOTTOM;

cell.Colspan = 3;

table.addCell(cell);

cell = new
Cell("example cell with colspan 1 and rowspan 2");

cell.Rowspan = 2;

cell.BorderColor = new Color(255, 0, 0);

cell.Border = Rectangle.LEFT |
Rectangle.BOTTOM;

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.Border = Rectangle.NO_BORDER;

cell.GrayFill = 0.9f;

table.addCell(cell);

table.addCell("cell
test2");

document.Add(table);

}

catch(DocumentException
de)

{

Console.Error.WriteLine(de.Message);

}

catch(IOException
ioe)

{

Console.Error.WriteLine(ioe.Message);

}

// step 5: we
close the document

document.Close();

}

}

示例代码0508

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap0508

{

public static void Main()

{

Console.WriteLine("Chapter 5
example 8: table splitting");

// step 1:
creation of a document-object

Document document = new Document();

try

{

// step
2:

// we
create a writer that listens to the document

// and
directs a PDF-stream to a file

PdfWriter.getInstance(document, new FileStream("Chap0508.pdf",
FileMode.Create));

// step
3: we open the document

document.Open();

// step
4: we create a table and add it to the document

Table table = new Table(3);

table.BorderWidth = 1;

table.BorderColor = new Color(0, 0, 255);

table.Padding = 5;

table.Spacing = 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 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 Color(0xC0, 0xC0, 0xC0);

table.addCell(cell);

table.addCell("cell
test2");

document.Add(new Paragraph("repeating the same table 10
times:"));

for
(int i = 0; i < 10; i++)

{

document.Add(table);

}

}

catch(DocumentException
de)

{

Console.Error.WriteLine(de.Message);

}

catch(IOException
ioe)

{

Console.Error.WriteLine(ioe.Message);

}

// step 5: we
close the document

document.Close();

}

}


示例代码0509

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap0509

{

public static void Main()

{

Console.WriteLine("Chapter 5
example 9: large tables");

// creation
of the document with a certain size and certain margins

Document document = new Document(PageSize.A4.rotate(), 50, 50, 50, 50);

try

{

//
creation of the different writers

PdfWriter.getInstance(document, new FileStream("Chap0509.pdf",
FileMode.Create));

// we
add some meta information to the document

document.addAuthor("Gerald
Henson");

document.addSubject("This is
the result of a Test.");

document.Open();

Table datatable = new Table(10);

datatable.Padding = 4;

datatable.Spacing = 0;

//datatable.setBorder(Rectangle.NO_BORDER);

float[]
headerwidths = {10, 24, 12, 12, 7, 7, 7, 7, 7, 7};

datatable.Widths = headerwidths;

datatable.WidthPercentage = 100;

// the
first cell spans 10 columns

Cell cell = new Cell(new
Phrase("Administration -System Users Report",
FontFactory.getFont(FontFactory.HELVETICA, 24, Font.BOLD)));

cell.HorizontalAlignment =
Element.ALIGN_CENTER;

cell.Leading = 30;

cell.Colspan = 10;

cell.Border = Rectangle.NO_BORDER;

cell.BackgroundColor = new Color(0xC0, 0xC0, 0xC0);

datatable.addCell(cell);

// These
cells span 2 rows

datatable.DefaultCellBorderWidth =
2;

datatable.DefaultHorizontalAlignment
= 1;

datatable.DefaultRowspan = 2;

datatable.addCell("User
Id");

datatable.addCell(new Phrase("Name",
FontFactory.getFont(FontFactory.HELVETICA, 14, Font.BOLD)));

datatable.addCell("Company");

datatable.addCell("Department");

// This
cell spans the remaining 6 columns in 1 row

datatable.DefaultRowspan = 1;

datatable.DefaultColspan = 6;

datatable.addCell("Permissions");

// These
cells span 1 row and 1 column

datatable.DefaultColspan = 1;

datatable.addCell("Admin");

datatable.addCell("Data");

datatable.addCell("Expl");

datatable.addCell("Prod");

datatable.addCell("Proj");

datatable.addCell("Online");

datatable.DefaultCellBorderWidth =
1;

datatable.DefaultRowspan = 1;

for
(int i = 1; i < 30; i++)

{

datatable.DefaultHorizontalAlignment
= Element.ALIGN_LEFT;

datatable.addCell("myUserId");

datatable.addCell("Somebody
with a very, very, very, very, very, very, very, very, very, very, very, very,
very, very, very, very, very, very, very, very, very, very, very, very, very,
very, very long long name");

datatable.addCell("No
Name Company");

datatable.addCell("D"
+ i);

datatable.DefaultHorizontalAlignment
= Element.ALIGN_CENTER;

datatable.addCell("No");

datatable.addCell("Yes");

datatable.addCell("No");

datatable.addCell("Yes");

datatable.addCell("No");

datatable.addCell("Yes");

}

document.Add(datatable);

}

catch(Exception
e)

{

Console.Error.WriteLine(e.StackTrace);

}

// we close
the document

document.Close();

}

}


示例代码0510

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap0510

{

public static void Main()

{

Console.WriteLine("Chapter 5
example 10: large tables with repeating headers");

// creation
of the document with a certain size and certain margins

Document document = new Document(PageSize.A4.rotate(), 50, 50, 50, 50);

try

{

//
creation of the different writers

PdfWriter.getInstance(document, new FileStream("Chap0510.pdf", FileMode.Create));

// we
add some meta information to the document

document.addAuthor("Gerald
Henson");

document.addSubject("This is
the result of a Test.");

document.Open();

Table datatable = new Table(10);

datatable.Padding = 4;

datatable.Spacing = 0;

//datatable.setBorder(Rectangle.NO_BORDER);

float[]
headerwidths = {10, 24, 12, 12, 7, 7, 7, 7, 7, 7};

datatable.Widths = headerwidths;

datatable.WidthPercentage = 100;

// the
first cell spans 10 columns

Cell cell = new Cell(new
Phrase("Administration -System Users Report",
FontFactory.getFont(FontFactory.HELVETICA, 24, Font.BOLD)));

cell.HorizontalAlignment =
Element.ALIGN_CENTER;

cell.Leading = 30;

cell.Colspan = 10;

cell.Border = Rectangle.NO_BORDER;

cell.BackgroundColor = new Color(0xC0, 0xC0, 0xC0);

datatable.addCell(cell);

// These
cells span 2 rows

datatable.DefaultCellBorderWidth =
2;

datatable.DefaultHorizontalAlignment
= 1;

datatable.DefaultRowspan = 2;

datatable.addCell("User
Id");

datatable.addCell(new Phrase("Name",
FontFactory.getFont(FontFactory.HELVETICA, 14, Font.BOLD)));

datatable.addCell("Company");

datatable.addCell("Department");

// This
cell spans the remaining 6 columns in 1 row

datatable.DefaultRowspan = 1;

datatable.DefaultColspan = 6;

datatable.addCell("Permissions");

// These
cells span 1 row and 1 column

datatable.DefaultColspan = 1;

datatable.addCell("Admin");

datatable.addCell("Data");

datatable.addCell("Expl");

datatable.addCell("Prod");

datatable.addCell("Proj");

datatable.addCell("Online");

// this
is the end of the table header

datatable.endHeaders();

datatable.DefaultCellBorderWidth =
1;

datatable.DefaultRowspan = 1;

for
(int i = 1; i < 30; i++)

{

datatable.DefaultHorizontalAlignment
= Element.ALIGN_LEFT;

datatable.addCell("myUserId");

datatable.addCell("Somebody
with a very, very, very, very, very, very, very, very, very, very, very, very,
very, very, very, very, very, very, very, very, very, very, very, very, very,
very, very long long name");

datatable.addCell("No
Name Company");

datatable.addCell("D"
+ i);

datatable.DefaultHorizontalAlignment
= Element.ALIGN_CENTER;

datatable.addCell("No");

datatable.addCell("Yes");

datatable.addCell("No");

datatable.addCell("Yes");

datatable.addCell("No");

datatable.addCell("Yes");

}

document.Add(datatable);

}

catch(Exception
e)

{

Console.Error.WriteLine(e.StackTrace);

}

// we close
the document

document.Close();

}

}


示例代码0511

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap0511

{

public static void Main()

{

Console.WriteLine("Chapter 5
example 11: avoid table splitting");

// step 1:
creation of a document-object

Document document = new Document();

try

{

// step
2:

// we
create a writer that listens to the document

// and
directs a PDF-stream to a file

PdfWriter.getInstance(document, new FileStream("Chap0511.pdf",
FileMode.Create));

// step
3: we open the document

document.Open();

// step
4: we create a table and add it to the document

Table table = new Table(3);

table.TableFitsPage = true;

table.BorderWidth = 1;

table.BorderColor = new Color(0, 0, 255);

table.Padding = 5;

table.Spacing = 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 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 Color(0xC0, 0xC0, 0xC0);

table.addCell(cell);

table.addCell("cell
test2");

document.Add(new Paragraph("repeating the same table 10
times:"));

for
(int i = 0; i < 10; i++)

{

document.Add(table);

}

}

catch(DocumentException
de)

{

Console.Error.WriteLine(de.Message);

}

catch(IOException
ioe)

{

Console.Error.WriteLine(ioe.Message);

}

// step 5: we
close the document

document.Close();

}

}


示例代码0512

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap0512

{

public static void Main()

{

Console.WriteLine("Chapter 5
example 12: avoid cell splitting");

// creation
of the document with a certain size and certain margins

Document document = new Document(PageSize.A4.rotate(), 50, 50, 50, 50);

try

{

//
creation of the different writers

PdfWriter.getInstance(document, new FileStream("Chap0512.pdf",
FileMode.Create));

// we
add some meta information to the document

document.addAuthor("Gerald
Henson");

document.addSubject("This is
the result of a Test.");

document.Open();

Table datatable = new Table(10);

datatable.CellsFitPage = true;

datatable.Padding = 4;

datatable.Spacing = 0;

//datatable.setBorder(Rectangle.NO_BORDER);

float[]
headerwidths = {10, 24, 12, 12, 7, 7, 7, 7, 7, 7};

datatable.Widths = headerwidths;

datatable.WidthPercentage = 100;

// the
first cell spans 10 columns

Cell cell = new Cell(new
Phrase("Administration -System Users Report",
FontFactory.getFont(FontFactory.HELVETICA, 24, Font.BOLD)));

cell.HorizontalAlignment =
Element.ALIGN_CENTER;

cell.Leading = 30;

cell.Colspan = 10;

cell.Border = Rectangle.NO_BORDER;

cell.BackgroundColor = new Color(0xC0, 0xC0, 0xC0);

datatable.addCell(cell);

// These
cells span 2 rows

datatable.DefaultCellBorderWidth =
2;

datatable.DefaultHorizontalAlignment
= 1;

datatable.DefaultRowspan = 2;

datatable.addCell("User
Id");

datatable.addCell(new Phrase("Name",
FontFactory.getFont(FontFactory.HELVETICA, 14, Font.BOLD)));

datatable.addCell("Company");

datatable.addCell("Department");

// This
cell spans the remaining 6 columns in 1 row

datatable.DefaultRowspan = 1;

datatable.DefaultColspan = 6;

datatable.addCell("Permissions");

// These
cells span 1 row and 1 column

datatable.DefaultColspan = 1;

datatable.addCell("Admin");

datatable.addCell("Data");

datatable.addCell("Expl");

datatable.addCell("Prod");

datatable.addCell("Proj");

datatable.addCell("Online");

// this
is the end of the table header

datatable.endHeaders();

datatable.DefaultCellBorderWidth =
1;

datatable.DefaultRowspan = 1;

for
(int i = 1; i < 30; i++)

{

datatable.DefaultHorizontalAlignment
= Element.ALIGN_LEFT;

datatable.addCell("myUserId");

datatable.addCell("Somebody
with a very, very, very, very, very, very, very, very, very, very, very, very,
very, very, very, very, very, very, very, very, very, very, very, very, very,
very, very long long name");

datatable.addCell("No
Name Company");

datatable.addCell("D"
+ i);

datatable.DefaultHorizontalAlignment
= Element.ALIGN_CENTER;

datatable.addCell("No");

datatable.addCell("Yes");

datatable.addCell("No");

datatable.addCell("Yes");

datatable.addCell("No");

datatable.addCell("Yes");

}

document.Add(datatable);

}

catch(Exception
e)

{

Console.Error.WriteLine(e.StackTrace);

}

// we close
the document

document.Close();

}

}


示例代码0513

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap0513

{

public static void Main()

{

Console.WriteLine("Chapter 5
example 13: large tables with fitspage");

// creation
of the document with a certain size and certain margins

Document document = new Document(PageSize.A4.rotate(), 50, 50, 50, 50);

try

{

//
creation of the different writers

PdfWriter writer =
PdfWriter.getInstance(document, new
FileStream("Chap0513.pdf", FileMode.Create));

// we
add some meta information to the document

document.addAuthor("Alan
Soukup");

document.addSubject("This is
the result of a Test.");

document.Open();

Table datatable = getTable();

for
(int i = 1; i < 30; i++)

{

datatable.DefaultHorizontalAlignment
= Element.ALIGN_LEFT;

datatable.addCell("myUserId");

datatable.addCell("Somebody
with a very, very, very, very, very, very, very, very, very, very, very, very,
very, very, very, very, very long long name");

datatable.addCell("No
Name Company");

datatable.addCell("D"
+ i);

datatable.DefaultHorizontalAlignment
= Element.ALIGN_CENTER;

datatable.addCell("No");

datatable.addCell("Yes");

datatable.addCell("No");

datatable.addCell("Yes");

datatable.addCell("No");

datatable.addCell("Yes");

if
(!writer.fitsPage(datatable))

{

datatable.deleteLastRow();

i--;

document.Add(datatable);

document.newPage();

datatable = getTable();

}

}

document.Add(datatable);

}

catch(Exception
e)

{

Console.WriteLine(e.StackTrace);

}

// we close
the document

document.Close();

}

private static Table getTable()

{

Table datatable = new Table(10);

datatable.Padding = 4;

datatable.Spacing = 0;

//datatable.setBorder(Rectangle.NO_BORDER);

float[]
headerwidths = {10, 24, 12, 12, 7, 7, 7, 7, 7, 7};

datatable.Widths = headerwidths;

datatable.WidthPercentage = 100;

// the first
cell spans 10 columns

Cell cell = new
Cell(new Phrase("Administration -System
Users Report", FontFactory.getFont(FontFactory.HELVETICA, 24,
Font.BOLD)));

cell.HorizontalAlignment =
Element.ALIGN_CENTER;

cell.Leading = 30;

cell.Colspan = 10;

cell.Border = Rectangle.NO_BORDER;

cell.BackgroundColor = new Color(0xC0, 0xC0, 0xC0);

datatable.addCell(cell);

// These
cells span 2 rows

datatable.DefaultCellBorderWidth = 2;

datatable.DefaultHorizontalAlignment =
1;

datatable.DefaultRowspan = 2;

datatable.addCell("User Id");

datatable.addCell(new Phrase("Name", FontFactory.getFont(FontFactory.HELVETICA,
14, Font.BOLD)));

datatable.addCell("Company");

datatable.addCell("Department");

// This cell
spans the remaining 6 columns in 1 row

datatable.DefaultRowspan = 1;

datatable.DefaultColspan = 6;

datatable.addCell("Permissions");

// These
cells span 1 row and 1 column

datatable.DefaultColspan = 1;

datatable.addCell("Admin");

datatable.addCell("Data");

datatable.addCell("Expl");

datatable.addCell("Prod");

datatable.addCell("Proj");

datatable.addCell("Online");

datatable.DefaultCellBorderWidth = 1;

datatable.DefaultRowspan = 1;

return
datatable;

}

}


示例代码0514

using System;

using System.Drawing;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap0514

{

public static void Main()

{

Console.WriteLine("Chapter 5
example 14: nested tables");

// step 1:
creation of a document-object

Document document = new Document();

try

{

// step
2:

// we
create a writer that listens to the document

// and
directs a PDF-stream to a file

PdfWriter.getInstance(document, new FileStream("Chap0514.pdf",
FileMode.Create));

// step
3: we open the document

document.Open();

// step
4: we create a table and add it to the document

//
simple example

Table secondTable = new Table(2);

secondTable.addCell("2nd
table 0.0");

secondTable.addCell("2nd
table 0.1");

secondTable.addCell("2nd
table 1.0");

secondTable.addCell("2nd
table 1.1");

Table aTable = new Table(4,4);   
// 4 rows, 4 columns

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.insertTable(secondTable, new Point(1,3));

document.Add(aTable);

//
example with 2 nested tables

Table thirdTable = new Table(2);

thirdTable.addCell("3rd table
0.0");

thirdTable.addCell("3rd table
0.1");

thirdTable.addCell("3rd table
1.0");

thirdTable.addCell("3rd table
1.1");

aTable = new
Table(5,5);

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.insertTable(secondTable, new Point(1,3));

aTable.insertTable(thirdTable, new Point(6,2));

document.Add(aTable);

//
relative column widths are preserved

Table a = new
Table( 2 );

a.Widths = new float[] { 85, 15 };

a.addCell("a-1");

a.addCell("a-2");

Table b = new
Table(5);

b.Widths = new float[] { 15, 7, 7, 7, 7 };

b.addCell("b-1");

b.addCell("b-2");

b.addCell("b-3");

b.addCell("b-4");

b.addCell("b-5");

// now,
insert these 2 tables into a third for layout purposes

Table c = new
Table( 3, 1 );

c.WidthPercentage = 100.0f;

c.Widths = new float[] { 20, 2, 78 };

c.insertTable(a, new Point(0,0) );

c.insertTable(b, new Point(0,2) );

document.Add(c);

//
adding extra cells after adding a table

Table t1 = new Table(3);

t1.addCell("1.1");

t1.addCell("1.2");

t1.addCell("1.3");

//
nested

Table t2 = new Table(2);

t2.addCell("2.1");

t2.addCell("2.2");

// now
insert the nested

t1.insertTable(t2);

t1.addCell("new
cell");    //
correct row/column ?

document.Add(t1);

// deep
nesting

t1=new
Table(2,2);

for
(int i = 0; i < 4; i++)

{

t1.addCell("t1");

}

t2=new
Table(3,3);

for
(int i = 0; i < 9; i++)

{

if
(i == 4) t2.insertTable(t1);

else
t2.addCell("t2");

}

Table t3=new
Table(4,4);

for
(int i = 0; i < 16; i++)

{

if
(i == 10) t3.insertTable(t2);

else
t3.addCell("t3");

}

document.Add(t3);

}

catch(DocumentException
de)

{

Console.Error.WriteLine(de.Message);

}

catch(IOException
ioe)

{

Console.Error.WriteLine(ioe.Message);

}

// step 5: we
close the document

document.Close();

}

}


示例代码0515

using System;

using System.Drawing;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap0515

{

public static void Main()

{

Console.WriteLine("Chapter 5
example 15: nested tables");

// step 1:
creation of a document-object

Document document = new Document();

try

{

// step
2:

// we
create a writer that listens to the document

// and
directs a PDF-stream to a file

PdfWriter.getInstance(document, new FileStream("Chap0515.pdf", FileMode.Create));

// step
3: we open the document

document.Open();

// step
4: we create a table and add it to the document

Table secondTable = new Table(2);

secondTable.addCell("2.0.0");

secondTable.addCell("2.0.1");

secondTable.addCell("2.1.0");

secondTable.addCell("2.1.1");

Cell tableCell = new Cell(secondTable);

Table aTable = new Table(3,3);   
// 3 rows, 3 columns

aTable.addCell("0.0", new Point(0,0));

aTable.addCell("0.1", new Point(0,1));

aTable.addCell("0.2", new Point(0,2));

aTable.addCell("0.0", new Point(1,0));

aTable.addCell(tableCell, new Point(1,1));

aTable.addCell("2.2", new Point(1,2));

aTable.addCell("2.0", new Point(2,0));

aTable.addCell("2.1", new Point(2,1));

aTable.addCell("2.2", new Point(2,2));

document.Add(aTable);

}

catch(DocumentException
de)

{

Console.Error.WriteLine(de.Message);

}

catch(IOException
ioe)

{

Console.Error.WriteLine(ioe.Message);

}

// step 5: we
close the document

document.Close();

}

}


示例代码0516

using System;

using System.Drawing;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap0516

{

public static void Main()

{

Console.WriteLine("Chapter 5
example 16: nested tables");

// step 1:
creation of a document-object

Document document = new Document(PageSize.A4.rotate());

try

{

// step
2:

// we
create a writer that listens to the document

// and
directs a PDF-stream to a file

PdfWriter.getInstance(document, new FileStream("Chap0516.pdf",
FileMode.Create));

// step
3: we open the document

document.Open();

// step
4: we create a table and add it to the document

Table secondTable = new Table(2);

secondTable.addCell("2nd
table 0.0");

secondTable.addCell("2nd
table 0.1");

secondTable.addCell("2nd
table 1.0");

secondTable.addCell("2nd
table 1.1");

Cell tableCell = new Cell("This is a nested table");

tableCell.Add(secondTable);

Table aTable = new Table(3,3);   
// 3 rows, 3 columns

aTable.addCell("0.0", new Point(0,0));

aTable.addCell("0.1", new Point(0,1));

aTable.addCell("0.2", new Point(0,2));

aTable.addCell("0.0", new Point(1,0));

aTable.addCell(tableCell, new Point(1,1));

aTable.addCell("2.2", new Point(1,2));

aTable.addCell("2.0", new Point(2,0));

aTable.addCell("2.1", new Point(2,1));

aTable.addCell("2.2", new Point(2,2));

document.Add(aTable);

}

catch(DocumentException
de)

{

Console.Error.WriteLine(de.Message);

}

catch(IOException
ioe)

{

Console.Error.WriteLine(ioe.Message);

}

// step 5: we
close the document

document.Close();

}

}


示例代码0517

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap0517

{

public static void Main()

{

Console.WriteLine("Chapter 5
example 17: table offset");

// step 1:
creation of a document-object

Document document = new Document();

try

{

// step
2:

// we
create a writer that listens to the document

// and
directs a PDF-stream to a file

PdfWriter.getInstance(document, new FileStream("Chap0517.pdf",
FileMode.Create));

// step
3: we open the document

document.Open();

// step
4: we create a table and add it to the document

Table table = new Table(3);

table.BorderWidth = 1;

table.BorderColor = new Color(0, 0, 255);

table.Padding = 5;

table.Spacing = 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 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 Color(0xC0, 0xC0, 0xC0);

table.addCell(cell);

table.addCell("cell
test2");

document.Add(new Paragraph("repeating the same table 10
times, but with different offsets:"));

document.Add(table);

document.Add(new Paragraph("blah blah."));

document.Add(table);

document.Add(new Paragraph("we increase the offset."));

table.Offset = 32;

document.Add(table);

document.Add(new Paragraph("blah blah."));

document.Add(table);

document.Add(new Paragraph("blah blah."));

document.Add(table);

document.Add(new Paragraph("we use an offset 0."));

table.Offset = 0;

document.Add(table);

document.Add(new Paragraph("blah blah."));

document.Add(table);

document.Add(new Paragraph("blah blah."));

document.Add(table);

document.Add(new Paragraph("A negative offset."));

table.Offset = -16;

document.Add(table);

document.Add(new Paragraph("blah blah."));

document.Add(table);

}

catch(DocumentException
de)

{

Console.Error.WriteLine(de.Message);

}

catch(IOException
ioe)

{

Console.Error.WriteLine(ioe.Message);

}

// step 5: we
close the document

document.Close();

}

}

示例代码0518

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap0518

{

public static void Main()

{

Console.WriteLine("Chapter 5
example 18: PdfPTable");

// step 1:
creation of a document-object

Document document = new Document(PageSize.A4.rotate(), 10, 10, 10, 10);

try

{

// step
2: we create a writer that listens to the document

PdfWriter.getInstance(document, new FileStream("Chap0518.pdf",
FileMode.Create));

// step
3: we open the document

document.Open();

// step
4: we add content to the document (this happens in a seperate method)

loadDocument(document);

}

catch
(Exception e2)

{

Console.WriteLine(e2);

}

// step 5: we
close the document

document.Close();

}

public static void
loadDocument(Document document)

{

String[] bogusData = {
"M0065920",

"SL",

"FR86000P",

"PCGOLD",

"119000",

"96 06",

"2001-08-13",

"4350",

"6011648299",

"FLFLMTGP",

"153",

"119000.00"

};

int
NumColumns = 12;

try

{

// we
add some meta information to the document

PdfPTable datatable = new PdfPTable(NumColumns);

datatable.DefaultCell.Padding = 3;

float[]
headerwidths = {9, 4, 8, 10, 8, 11, 9, 7, 9, 10, 4, 10}; // percentage

datatable.setWidths(headerwidths);

datatable.WidthPercentage = 100; // percentage

datatable.DefaultCell.BorderWidth
= 2;

datatable.DefaultCell.HorizontalAlignment
= Element.ALIGN_CENTER;

datatable.addCell("Clock
#");

datatable.addCell("Trans
Type");

datatable.addCell("Cusip");

datatable.addCell("Long
Name");

datatable.addCell("Quantity");

datatable.addCell("Fraction
Price");

datatable.addCell("Settle
Date");

datatable.addCell("Portfolio");

datatable.addCell("ADP
Number");

datatable.addCell("Account
ID");

datatable.addCell("Reg Rep
ID");

datatable.addCell("Amt To Go
");

datatable.HeaderRows = 1;  // this is the end
of the table header

datatable.DefaultCell.BorderWidth
= 1;

int
max = 666;

for
(int i = 1; i < max; i++)

{

if
(i % 2 == 1)

{

datatable.DefaultCell.GrayFill
= 0.9f;

}

for
(int x = 0; x < NumColumns; x++)

{

datatable.addCell(bogusData[x]);

}

if
(i % 2 == 1)

{

datatable.DefaultCell.GrayFill
= 0.0f;

}

}

document.Add(datatable);

}

catch(Exception
e)

{

Console.Error.WriteLine(e.StackTrace);

}

}

}


示例代码0601

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap0601

{

public static void Main()

{

Console.WriteLine("Chapter 6
example 1: Adding a Wmf, Gif, Jpeg and Png-file using urls");

// step 1:
creation of a document-object

Document document = new Document();

try

{

// step
2:

// we
create a writer that listens to the document

// and
directs a PDF-stream to a file

PdfWriter.getInstance(document, new FileStream("Chap0601.pdf",
FileMode.Create));

// step
3: we open the document

document.Open();

Image wmf = Image.getInstance(new
Uri("http://itextsharp.sourceforge.net/examples/harbour.wmf"));

Image gif = Image.getInstance(new
Uri("http://itextsharp.sourceforge.net/examples/vonnegut.gif"));

Image jpeg = Image.getInstance(new
Uri("http://itextsharp.sourceforge.net/examples/myKids.jpg"));

Image png = Image.getInstance(new Uri("http://itextsharp.sourceforge.net/examples/hitchcock.png"));

document.Add(wmf);

document.Add(gif);

document.Add(jpeg);

document.Add(png);

}

catch(DocumentException
de)

{

Console.Error.WriteLine(de.Message);

}

catch(IOException
ioe)

{

Console.Error.WriteLine(ioe.Message);

}

// step 5: we
close the document

document.Close();

}

}


示例代码0602

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap0602

{

public static void Main()

{

Console.WriteLine("Chapter 6
example 2: Adding a Wmf, Gif, Jpeg and Png-file using filenames");

// step 1:
creation of a document-object

Document document = new Document();

try

{

// step
2:

// we
create a writer that listens to the document

// and
directs a PDF-stream to a file

PdfWriter.getInstance(document, new FileStream("Chap0602.pdf",
FileMode.Create));

// step
3: we open the document

document.Open();

Image gif = Image.getInstance("vonnegut.gif");

Image jpeg =
Image.getInstance("myKids.jpg");

Image png =
Image.getInstance("hitchcock.png");

document.Add(gif);

document.Add(jpeg);

document.Add(png);

}

catch(DocumentException
de)

{

Console.Error.WriteLine(de.Message);

}

catch(IOException
ioe)

{

Console.Error.WriteLine(ioe.Message);

}

// step 5: we
close the document

document.Close();

}

}


示例代码0603

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap0603

{

public static void Main()

{

Console.WriteLine("Chapter 6
example 3: using a relative path for HTML");

// step 1:
creation of a document-object

Document document = new Document();

try

{

// step
2:

// we
create a writer that listens to the document

// and
directs a PDF-stream to a file

PdfWriter.getInstance(document, new FileStream("Chap0603.pdf",
FileMode.Create));

// step
3: we open the document

document.Open();

// step
4: we add content

Image jpg =
Image.getInstance("raf.jpg");

jpg.scalePercent(50);

document.Add(jpg);

}

catch(DocumentException
de)

{

Console.Error.WriteLine(de.Message);

}

catch(IOException
ioe)

{

Console.Error.WriteLine(ioe.Message);

}

// step 5: we
close the document

document.Close();

}

}


示例代码0604

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap0604

{

public static void Main()

{

Console.WriteLine("Chapter 6
example 4: Alignment of images");

// step 1:
creation of a document-object

Document document = new Document();

try

{

// step
2:

// we
create a writer that listens to the document

// and
directs a PDF-stream to a file

PdfWriter.getInstance(document, new FileStream("Chap0604.pdf",
FileMode.Create));

// step
3: we open the document

document.Open();

Image gif =
Image.getInstance("vonnegut.gif");

gif.Alignment = Image.RIGHT;

Image jpeg =
Image.getInstance("myKids.jpg");

jpeg.Alignment = Image.MIDDLE;

Image png =
Image.getInstance("hitchcock.png");

png.Alignment = Image.LEFT;

document.Add(gif);

document.Add(jpeg);

document.Add(png);

}

catch(DocumentException
de)

{

Console.Error.WriteLine(de.Message);

}

catch(IOException
ioe)

{

Console.Error.WriteLine(ioe.Message);

}

// step 5: we
close the document

document.Close();

}

}


示例代码0605

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap0605

{

public static void Main()

{

Console.WriteLine("Chapter 6
example 5: Alignment of images");

// step 1:
creation of a document-object

Document document = new Document();

try

{

// step
2:

// we
create a writer that listens to the document

// and
directs a PDF-stream to a file

PdfWriter.getInstance(document, new FileStream("Chap0605.pdf",
FileMode.Create));

// step
3: we open the document

document.Open();

Image gif =
Image.getInstance("vonnegut.gif");

gif.Alignment = Image.RIGHT |
Image.TEXTWRAP;

Image jpeg =
Image.getInstance("myKids.jpg");

jpeg.Alignment = Image.MIDDLE;

Image png =
Image.getInstance("hitchcock.png");

png.Alignment = Image.LEFT |
Image.UNDERLYING;

for
(int i = 0; i < 100; i++)

{

document.Add(new Phrase("Who is this? "));

}

document.Add(gif);

for
(int i = 0; i < 100; i++)

{

document.Add(new Phrase("Who is this? "));

}

document.Add(jpeg);

for
(int i = 0; i < 100; i++)

{

document.Add(new Phrase("Who is this? "));

}

document.Add(png);

for
(int i = 0; i < 100; i++)

{

document.Add(new Phrase("Who is this? "));

}

document.Add(gif);

for
(int i = 0; i < 100; i++)

{

document.Add(new Phrase("Who is this? "));

}

document.Add(jpeg);

for
(int i = 0; i < 100; i++)

{

document.Add(new Phrase("Who is this? "));

}

document.Add(png);

for
(int i = 0; i < 100; i++)

{

document.Add(new Phrase("Who is this? "));

}

}

catch(DocumentException
de)

{

Console.WriteLine(de.Message);

}

catch(IOException
ioe)

{

Console.WriteLine(ioe.Message);

}

// step 5: we
close the document

document.Close();

}

}


示例代码0606

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap0606

{

public static void Main()

{

Console.WriteLine("Chapter 6
example 6: Absolute Positioning of an Image");

// step 1:
creation of a document-object

Document document = new Document();

try

{

// step
2:

// we
create a writer that listens to the document

// and
directs a PDF-stream to a file

PdfWriter.getInstance(document, new FileStream("Chap0606.pdf",
FileMode.Create));

// step
3: we open the document

document.Open();

// step
4: we add content

Image png =
Image.getInstance("hitchcock.png");

png.setAbsolutePosition(171, 250);

document.Add(png);

png.setAbsolutePosition(342, 500);

document.Add(png);

}

catch(DocumentException
de)

{

Console.Error.WriteLine(de.Message);

}

catch(IOException
ioe)

{

Console.Error.WriteLine(ioe.Message);

}

// step 5: we
close the document

document.Close();

}

}


示例代码0607

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap0607

{

public static void Main()

{

Console.WriteLine("Chapter 6
example 7: Scaling an Image");

// step 1:
creation of a document-object

Document document = new Document();

try

{

// step
2:

// we
create a writer that listens to the document

// and
directs a PDF-stream to a file

PdfWriter.getInstance(document, new FileStream("Chap0607.pdf",
FileMode.Create));

// step
3: we open the document

document.Open();

// step
4: we add content

Image jpg1 =
Image.getInstance("myKids.jpg");

jpg1.scaleAbsolute(97, 101);

document.Add(new Paragraph("scaleAbsolute(97, 101)"));

document.Add(jpg1);

Image jpg2 =
Image.getInstance("myKids.jpg");

jpg2.scalePercent(50);

document.Add(new Paragraph("scalePercent(50)"));

document.Add(jpg2);

Image jpg3 =
Image.getInstance("myKids.jpg");

jpg3.scaleAbsolute(194, 101);

document.Add(new Paragraph("scaleAbsolute(194, 101)"));

document.Add(jpg3);

Image jpg4 =
Image.getInstance("myKids.jpg");

jpg4.scalePercent(100, 50);

document.Add(new Paragraph("scalePercent(100, 50)"));

document.Add(jpg4);

}

catch(DocumentException
de)

{

Console.Error.WriteLine(de.Message);

}

catch(IOException
ioe)

{

Console.Error.WriteLine(ioe.Message);

}

// step 5: we
close the document

document.Close();

}

}


示例代码0608

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap0608

{

public static void Main()

{

Console.WriteLine("Chapter 6
example 8: Rotating an Image");

// step 1:
creation of a document-object

Document document = new Document();

try

{

// step
2:

// we
create a writer that listens to the document

// and
directs a PDF-stream to a file

PdfWriter.getInstance(document, new FileStream("Chap0608.pdf",
FileMode.Create));

// step
3: we open the document

document.Open();

// step
4: we add content

Image jpg =
Image.getInstance("myKids.jpg");

jpg.Alignment = Image.MIDDLE;

jpg.setRotation((float)Math.PI / 6);

document.Add(new Paragraph("rotate 30 degrees"));

document.Add(jpg);

document.newPage();

jpg.setRotation((float)Math.PI / 4);

document.Add(new Paragraph("rotate 45 degrees"));

document.Add(jpg);

document.newPage();

jpg.setRotation((float)Math.PI / 2);

document.Add(new Paragraph("rotate pi/2 radians"));

document.Add(jpg);

document.newPage();

jpg.setRotation((float)(Math.PI * 0.75));

document.Add(new Paragraph("rotate 135 degrees"));

document.Add(jpg);

document.newPage();

jpg.setRotation((float)Math.PI);

document.Add(new Paragraph("rotate pi radians"));

document.Add(jpg);

document.newPage();

jpg.setRotation((float)(2.0 * Math.PI));

document.Add(new Paragraph("rotate 2 x pi radians"));

document.Add(jpg);

}

catch(DocumentException
de)

{

Console.Error.WriteLine(de.Message);

}

catch(IOException
ioe)

{

Console.Error.WriteLine(ioe.Message);

}

// step 5: we
close the document

document.Close();

}

}


示例代码0609

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap0609

{

public static void Main()

{

Console.WriteLine("Chapter 6
example 9: bytes() / Raw Image");

// step 1:
creation of a document-object

Document document = new Document();

try

{

// step
2:

// we
create a writer that listens to the document

// and
directs a PDF-stream to a file

PdfWriter.getInstance(document, new FileStream("Chap0609.pdf",
FileMode.Create));

// step
3: we open the document

document.Open();

// step
4: we add content (example by Paulo Soares)

//
creation a jpeg passed as an array of bytes to the Image

FileStream rf = new FileStream("mykids.jpg", FileMode.Open,
FileAccess.Read);

int
size = (int)rf.Length;

byte[]
imext = new byte[size];

rf.Read(imext, 0, size);

rf.Close();

Image img1 =
Image.getInstance(imext);

img1.setAbsolutePosition(50, 500);

document.Add(img1);

//
creation of an image of 100 x 100 pixels (x 3 bytes for the Red, Green and Blue
value)

byte[]
data = new byte[100*100*3];

for
(int k = 0; k < 100; ++k)

{

for
(int j = 0; j < 300; j += 3)

{

data[k * 300 + j] = (byte)(255 * Math.Sin(j * .5 * Math.PI / 300));

data[k * 300 + j + 1] = (byte)(256 - j * 256 / 300);

data[k * 300 + j + 2] = (byte)(255 * Math.Cos(k * .5 * Math.PI / 100));

}

}

Image img2 = Image.getInstance(100,
100, 3, 8, data);

img2.setAbsolutePosition(200,
200);

document.Add(img2);

}

catch(DocumentException
de)

{

Console.Error.WriteLine(de.Message);

}

catch(IOException
ioe)

{

Console.Error.WriteLine(ioe.Message);

}

// step 5: we
close the document

document.Close();

}

}


示例代码0610

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap0610

{

public static void Main()

{

Console.WriteLine("Chapter 6 example
10: Images using System.Drawing.Bitmap!");

// step 1:
creation of a document-object

Document document = new Document();

try

{

// step
2:

// we
create a writer that listens to the document

// and
directs a PDF-stream to a file

PdfWriter writer =
PdfWriter.getInstance(document, new
FileStream("Chap0610.pdf", FileMode.Create));

// step
3: we open the document

document.Open();

// step
4: we add content to the document

for (int i = 0; i
< 300; i++)

{

document.Add(new Phrase("Who is this? "));

}

PdfContentByte cb =
writer.DirectContent;

Image image = Image.getInstance(new System.Drawing.Bitmap("h.gif"), null);

image.setAbsolutePosition(100,
200);

cb.addImage(image);

}

catch(DocumentException
de)

{

Console.WriteLine(de.Message);

}

catch(IOException
ioe)

{

Console.WriteLine(ioe.Message);

}

// step 5: we
close the document

document.Close();

}

}


示例代码0611

using System;

using System.IO;

using System.Drawing.Imaging;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap0611

{

public static void Main()

{

// creation
of the document with a certain size and certain margins

Document document = new Document(PageSize.A4, 50, 50, 50, 50);

//Document.compress
= false;

try

{

//
creation of the different writers

PdfWriter writer =
PdfWriter.getInstance(document, new
FileStream("Chap0611.pdf", FileMode.Create));

System.Drawing.Bitmap bm = new System.Drawing.Bitmap("338814-00.tif");

int
total = bm.GetFrameCount(FrameDimension.Page);

Console.WriteLine("Number of
images in this TIFF: " + total);

// Which
of the multiple images in the TIFF file do we want to load

// 0
refers to the first, 1 to the second and so on.

document.Open();

PdfContentByte cb =
writer.DirectContent;

for
(int k = 0; k < total; ++k)

{

bm.SelectActiveFrame(FrameDimension.Page,
k);

Image img =
Image.getInstance(bm, null, true);

img.scalePercent(72f / 200f *
100);

img.setAbsolutePosition(0,
0);

Console.WriteLine("Image:
" + k);

cb.addImage(img);

document.newPage();

}

document.Close();

}

catch
(Exception de)

{

Console.Error.WriteLine(de.Message);

Console.Error.WriteLine(de.StackTrace);

}

}

}


示例代码0613

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap0613

{

public static void Main()

{

Console.WriteLine("Chapter 6
example 13: masked images");

Document document = new Document(PageSize.A4, 50, 50, 50, 50);

try

{

PdfWriter writer =
PdfWriter.getInstance(document, new
FileStream("Chap0613.pdf", FileMode.Create));

document.Open();

Paragraph p = new Paragraph("Some text behind a masked
image.");

document.Add(p);

document.Add(p);

document.Add(p);

document.Add(p);

document.Add(p);

document.Add(p);

document.Add(p);

document.Add(p);

document.Add(p);

document.Add(p);

document.Add(p);

document.Add(p);

document.Add(p);

document.Add(p);

document.Add(p);

document.Add(p);

document.Add(p);

document.Add(p);

document.Add(p);

document.Add(p);

document.Add(p);

document.Add(p);

document.Add(p);

document.Add(p);

document.Add(p);

PdfContentByte cb =
writer.DirectContent;

byte[]
maskr = {(byte)0x3c, (byte)0x7e,
(byte)0xe7, (byte)0xc3,
(byte)0xc3, (byte)0xe7,
(byte)0x7e, (byte)0x3c};

Image mask = Image.getInstance(8,
8, 1, 1, maskr);

mask.makeMask();

mask.InvertMask = true;

Image image =
Image.getInstance("vonnegut.gif");

image.ImageMask = mask;

image.setAbsolutePosition(60,
620);

//
explicit masking

cb.addImage(image);

//
stencil masking

cb.setRGBColorFill(255, 0, 0);

cb.addImage(mask, mask.ScaledWidth
* 8, 0, 0, mask.ScaledHeight * 8, 100, 400);

cb.setRGBColorFill(0, 255, 0);

cb.addImage(mask, mask.ScaledWidth
* 8, 0, 0, mask.ScaledHeight * 8, 200, 400);

cb.setRGBColorFill(0, 0, 255);

cb.addImage(mask, mask.ScaledWidth
* 8, 0, 0, mask.ScaledHeight * 8, 300, 400);

document.Close();

}

catch
(Exception de)

{

Console.Error.WriteLine(de.StackTrace);

}

}

}


示例代码0614

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap0614

{

public static void Main()

{

Document.compress = false;

Console.WriteLine("Chapter 6
example 14: images wrapped in a Chunk");

// step 1:
creation of a document-object

Document document = new Document();

try

{

// step
2:

// we
create a writer that listens to the document

// and
directs a PDF-stream to a file

PdfWriter.getInstance(document, new FileStream("Chap0614.pdf",
FileMode.Create));

// step
3: we open the document

document.Open();

// step
4: we create a table and add it to the document

Image img =
Image.getInstance("pngnow.png");

img.scalePercent(70);

Chunk ck = new Chunk(img, 0, -5);

Table table = new Table(3);

table.WidthPercentage = 100;

table.Padding = 2;

table.DefaultHorizontalAlignment =
Element.ALIGN_CENTER;

Cell cell = new Cell(new
Chunk(img, 0, -13));

cell.BackgroundColor = new Color(0xC0, 0xC0, 0xC0);

cell.HorizontalAlignment =
Element.ALIGN_CENTER;

table.addCell("I see an
image\non my right");

table.addCell(cell);

table.addCell("I see an
image\non my left");

table.addCell(cell);

table.addCell("I see
images\neverywhere");

table.addCell(cell);

table.addCell("I see an
image\non my right");

table.addCell(cell);

table.addCell("I see an
image\non my left");

Phrase p1 = new Phrase("This is an image ");

p1.Add(ck);

p1.Add(" just here.");

document.Add(p1);

document.Add(p1);

document.Add(p1);

document.Add(p1);

document.Add(p1);

document.Add(p1);

document.Add(p1);

document.Add(table);

}

catch(DocumentException
de)

{

Console.Error.WriteLine(de.Message);

}

catch(IOException
ioe)

{

Console.Error.WriteLine(ioe.Message);

}

// step 5: we close the document

document.Close();

}

}


示例代码0615

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap0615

{

public static void Main()

{

Console.WriteLine("Chapter 6
example 15: images in tables");

// step 1:
creation of a document-object

Document document = new Document();

try

{

// step
2:

// we
create a writer that listens to the document

// and
directs a PDF-stream to a file

PdfWriter.getInstance(document, new FileStream("Chap0615.pdf",
FileMode.Create));

// step
3: we open the document

document.Open();

// step
4: we create a table and add it to the document

Image img0 =
Image.getInstance("myKids.jpg");

img0.Alignment = Image.MIDDLE;

Image img1 =
Image.getInstance("pngnow.png");

img1.Alignment = Image.LEFT |
Image.UNDERLYING;

Image img2 =
Image.getInstance("pngnow.png");

img2.Alignment = Image.RIGHT |
Image.TEXTWRAP;

Image img3 =
Image.getInstance("pngnow.png");

img3.Alignment = Image.LEFT;

Image img4 =
Image.getInstance("pngnow.png");

img4.Alignment = Image.MIDDLE;

Image img5 =
Image.getInstance("pngnow.png");

img5.Alignment = Image.RIGHT;

Table table = new Table(3);

table.Padding = 2;

table.DefaultHorizontalAlignment =
Element.ALIGN_CENTER;

// row 1

table.addCell("I see an
image\non my right");

Cell cell = new Cell("This is the image (aligned in the
middle):");

cell.BackgroundColor = new Color(0xC0, 0xC0, 0xC0);

cell.Add(img0);

cell.Add(new
Phrase("This was the image"));

table.addCell(cell);

table.addCell("I see an
image\non my left");

// row 2

cell = new
Cell("This is the image (left aligned):");

cell.Add(img1);

cell.Add(new
Phrase("This was the image"));

table.addCell(cell);

table.addCell("I see
images\neverywhere");

cell = new
Cell("This is the image (right aligned):");

cell.Add(img2);

cell.Add(new
Phrase("This was the image"));

table.addCell(cell);

// row 3

table.addCell("I see an
image\non my right");

cell = new
Cell(img3);

cell.Add(img4);

cell.Add(img5);

table.addCell(cell);

table.addCell("I see an
image\non my left");

document.Add(table);

}

catch(DocumentException
de)

{

Console.Error.WriteLine(de.Message);

}

catch(IOException
ioe)

{

Console.Error.WriteLine(ioe.Message);

}

// step 5: we
close the document

document.Close();

}

}


示例代码0616

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap0616

{

public static void Main()

{

Console.WriteLine("Chapter 6
example 16: images and annotations");

// step 1:
creation of a document-object

Document document = new Document(PageSize.A4, 50, 50, 50, 50);

try

{

// step
2:

// we
create a writer that listens to the document

PdfWriter writer =
PdfWriter.getInstance(document, new
FileStream("Chap0616.pdf", FileMode.Create));

// step
3: we open the document

document.Open();

// step
4: we add some content

Image wmf = Image.getInstance(new Uri("http://itext.sourceforge.net/examples/harbour.wmf"));

wmf.Annotation = new Annotation(0, 0, 0, 0,
"http://www.lowagie.com");

wmf.setAbsolutePosition(100f,
600f);

document.Add(wmf);

Image gif = Image.getInstance(new
Uri("http://itext.sourceforge.net/examples/vonnegut.gif"));

gif.Annotation = new Annotation(0, 0, 0, 0, "Chap0610.pdf",
3);

gif.setAbsolutePosition(100f,
400f);

document.Add(gif);

Image jpeg = Image.getInstance(new
Uri("http://itext.sourceforge.net/examples/myKids.jpg"));

jpeg.Annotation = new Annotation("picture", "These are
my children", 0, 0, 0, 0);

jpeg.setAbsolutePosition(100f,
150f);

document.Add(jpeg);

Image png = Image.getInstance(new
Uri("http://itext.sourceforge.net/examples/hitchcock.png"));

png.Annotation = new Annotation(0, 0, 0, 0, "Chap0610.pdf",
"test");

png.setAbsolutePosition(350f,
250f);

document.Add(png);

}

catch
(Exception de)

{

Console.Error.WriteLine(de.StackTrace);

}

// step 5: we
close the document

document.Close();

}

}


示例代码0702

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.xml;

using iTextSharp.text.pdf;

public class Chap0702

{

public static void Main()

{

Console.WriteLine("Chapter 7
example 2: parsing the result of example 1");

// step 1:
creation of a document-object

Document document = new Document();

try

{

// step
2:

// we
create a writer that listens to the document

// and
directs a XML-stream to a file

PdfWriter.getInstance(document, new FileStream("Chap0702.pdf",
FileMode.Create));

// step
3: we create a parser

iTextHandler h = new iTextHandler(document);

// step
4: we parse the document

h.Parse("Chap0701.xml");

}

catch
(Exception e)

{

Console.Error.WriteLine(e.StackTrace);

Console.Error.WriteLine(e.Message);

}

}

}


示例代码0801

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.rtf;

public class Chap0801

{

public static void
Main(String[] args)

{

Console.WriteLine("Chapter 8
example 1: Hello World");

// step 1:
creation of a document-object

Document document = new Document();

try

{

// step
2:

// we
create a writer that listens to the document

// and
directs a RTF-stream to a file

RtfWriter.getInstance(document, new FileStream("Chap0801.rtf",
FileMode.Create));

// step
3: we open the document

document.Open();

// step
4: we add a paragraph to the document

document.Add(new Paragraph("Hello World"));

}

catch(DocumentException
de)

{

Console.Error.WriteLine(de.Message);

}

catch(IOException
ioe)

{

Console.Error.WriteLine(ioe.Message);

}

// step 5: we
close the document

document.Close();

}

}


示例代码0802

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.rtf;

/**

* This example creates a RTF document with two chapters and
different headers

* for both chapters. The same works for footers. Just
replace setHeader with

* setFooter.

*

* @author <a
href="mailto:[email protected]">[email protected]</a>

*/

public class Chap0802

{

public static void
Main(String[] args)

{

Console.WriteLine("Chapter 8
example 2: Headers in RTF");

// step 1:
creation of a document-object

Document document = new Document();

try

{

// step
2:

// we
create a writer that listens to the document

// and
directs a PDF-stream to a file

RtfWriter.getInstance(document, new FileStream("Chap0802.rtf",
FileMode.Create));

// step
3: we open the document

document.Open();

// step
4: we create two chapters and add the same content to both.

Paragraph par = new Paragraph("This is some sample
content.");

Chapter chap1 = new Chapter("Chapter 1", 1);

chap1.Add(par);

Chapter chap2 = new Chapter("Chapter 2", 2);

chap2.Add(par);

// step
5: we create the header for the first chapter, set the header and

// then
add the first chapter.

HeaderFooter hf1 = new HeaderFooter(new
Phrase("This is chapter 1"), false);

document.Header = hf1;

document.Add(chap1);

// step
6: we create a second header, set this one and then add the second

//
chapter.

HeaderFooter hf2 = new HeaderFooter(new
Phrase("This is chapter 2"), false);

document.Header = hf2;

document.Add(chap2);

}

catch(DocumentException
de)

{

Console.Error.WriteLine(de.Message);

}

catch(IOException
ioe)

{

Console.Error.WriteLine(ioe.Message);

}

// step 7: we
close the document

document.Close();

}

}


示例代码0803

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.rtf;

/** * This example creates a RTF document with more complex
headers and footers

*  * using the
RtfHeaderFooters class.

*  * @author
[email protected]

* */

public class Chap0803

{

public static void
Main(String[] args)

{

Console.WriteLine("Chapter 8
example 3: RTF with the RtfHeaderFooters class");

/* Create a
new document */

Document document = new Document(PageSize.A4);

try

{

/*
Create a RtfWriter and a PdfWriter for the document */

RtfWriter rtf =
RtfWriter.getInstance(document, new
FileStream("Chap0803.rtf", FileMode.Create));

/* We
specify that the RTF file has a Title Page */

rtf.HasTitlePage = true;

/* We
create headers and footers for the RTF file */

RtfHeaderFooters header = new RtfHeaderFooters();

RtfHeaderFooters footer = new RtfHeaderFooters();

/* We
add a header that will only appear on the first page */

header.Set(RtfHeaderFooters.FIRST_PAGE,
new HeaderFooter(new
Phrase("This header is only on the first page"), false));

/* We
add a header that will only appear on left-side pages */

header.Set(RtfHeaderFooters.LEFT_PAGES,
new HeaderFooter(new
Phrase("This header is only on left pages"), false));

/* We
add a header that will only appear on right-side pages */

header.Set(RtfHeaderFooters.RIGHT_PAGES,
new HeaderFooter(new
Phrase("This header is only on right pages. "), false));

/* We
add a footer that will appear on all pages except the first (because of the
title page)

* Because the header has different left and
right page footers, we have to add the footer

* to both the left and right pages. */

footer.Set(RtfHeaderFooters.LEFT_PAGES,
new HeaderFooter(new
Phrase("This footer is on all pages except the first. Page: "), true));

footer.Set(RtfHeaderFooters.RIGHT_PAGES,
new HeaderFooter(new
Phrase("This footer is on all pages except the first. Page: "), true));

/* Open
the document */

document.Open();

/* We
add the header and footer */

document.Header = header;

document.Footer = footer;

/* We
add some content */

Chapter chapter = new Chapter(new
Paragraph("Advanced RTF headers and footers", new Font(Font.HELVETICA, 16, Font.BOLD)), 1);

chapter.Add(new Paragraph("This document demonstrates the
use of advanced RTF headers and footers."));

for(int i = 0;

i < 300;

i++)

{

chapter.Add(new Paragraph("Line " + i));

} document.Add(chapter);

}

catch(DocumentException
de)

{

Console.Error.WriteLine(de.Message);

}

catch(IOException
ioe)

{

Console.Error.WriteLine(ioe.Message);

}

/* Close the
document */

document.Close();

}

}


示例代码0804

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.rtf;

public class Chap0804

{

public static void
Main(String[] args)

{

Console.WriteLine("Chapter 8
example 4: Tables and RTF");

// step 1:
creation of a document-object

Document document = new Document();

try

{

// step
2:

// we
create a writer that listens to the document

// and
directs a PDF-stream to a file

RtfWriter.getInstance(document, new FileStream("Chap0804.rtf",
FileMode.Create));

// step
3: we open the document

document.Open();

// step
4: we create a table and add it to the document

Table table = new Table(3);

table.BorderWidth = 1;

table.BorderColor = new Color(0, 0, 255);

table.Padding = 5;

table.Spacing = 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 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 Color(0xC0, 0xC0, 0xC0);

table.addCell(cell);

table.addCell("cell
test2");

document.Add(table);

}

catch(DocumentException
de)

{

Console.Error.WriteLine(de.Message);

}

catch(IOException
ioe)

{

Console.Error.WriteLine(ioe.Message);

}

// step 5: we
close the document

document.Close();

}

}


示例代码0901

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class FontTest

{

public static void Main()

{

// step 1:
creation of a document-object

Document document = new Document();

try

{

// step
2:

// we
create a writer that listens to the document

// and
directs a PDF-stream to a file

PdfWriter.getInstance(document, new
FileStream("FontTest.pdf",FileMode.Create));

// step
3: we open the document

document.Open();

// step
4: we Add content to the document

BaseFont bfHei =
BaseFont.createFont(@"c:\winnt\fonts\SIMHEI.TTF",
BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);

Font font = new Font(bfHei, 32);

String text = "这是黑体字测试!";

document.Add(new Paragraph(text, font));

BaseFont
bfSun=BaseFont.createFont(@"c:\winnt\fonts\SIMSUN.TTC,1",
BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);

font = new
Font(bfSun, 16);

text = "这是字体集合中的新宋体测试!";

document.Add(new Paragraph(text, font));

}

catch(DocumentException
de)

{

Console.Error.WriteLine(de.Message);

}

catch(IOException
ioe)

{

Console.Error.WriteLine(ioe.Message);

}

// step 5: we
close the document

document.Close();

}

}


示例代码1001

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class FontTest

{

public static void Main()

{

// step 1:
creation of a document-object

Document document = new Document();

try

{

// step 2:

// we
create a writer that listens to the document

// and
directs a PDF-stream to a file

PdfWriter.getInstance(document, new
FileStream("FontTest.pdf",FileMode.Create));

// step
3: we open the document

document.Open();

// step
4: we Add content to the document

BaseFont bfHei =
BaseFont.createFont(@"c:\winnt\fonts\SIMHEI.TTF",
BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);

Font font = new Font(bfHei, 32);

String text = "这是黑体字测试!";

document.Add(new Paragraph(text, font));

BaseFont
bfSun=BaseFont.createFont(@"c:\winnt\fonts\SIMSUN.TTC,1",
BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);

font = new
Font(bfSun, 16);

text = "这是字体集合中的新宋体测试!";

document.Add(new Paragraph(text, font));

}

catch(DocumentException
de)

{

Console.Error.WriteLine(de.Message);

}

catch(IOException
ioe)

{

Console.Error.WriteLine(ioe.Message);

}

// step 5: we
close the document

document.Close();

}

}


示例代码1002

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap1002

{

public static void Main()

{

Console.WriteLine("Chapter 10
example 2: Text at absolute positions");

// step 1:
creation of a document-object

Document document = new Document();

try

{

// step
2:

// we
create a writer that listens to the document

// and
directs a PDF-stream to a file

PdfWriter writer =
PdfWriter.getInstance(document, new
FileStream("Chap1002.pdf", FileMode.Create));

// step
3: we open the document

document.Open();

// step
4: we grab the ContentByte and do some stuff with it

PdfContentByte cb =
writer.DirectContent;

// first
we draw some lines to be able to visualize the text alignment functions

cb.LineWidth = 0f;

cb.moveTo(250, 500);

cb.lineTo(250, 800);

cb.moveTo(50, 700);

cb.lineTo(400, 700);

cb.moveTo(50, 650);

cb.lineTo(400, 650);

cb.moveTo(50, 600);

cb.lineTo(400, 600);

cb.stroke();

// we
tell the ContentByte we‘re ready to draw text

cb.beginText();

BaseFont bf =
BaseFont.createFont(BaseFont.HELVETICA, BaseFont.CP1252,
BaseFont.NOT_EMBEDDED);

cb.setFontAndSize(bf, 12);

String
text = "Sample text for alignment";

// we
show some text starting on some absolute position with a given alignment

cb.showTextAligned(PdfContentByte.ALIGN_CENTER,
text + " Center", 250, 700, 0);

cb.showTextAligned(PdfContentByte.ALIGN_RIGHT,
text + " Right", 250, 650, 0);

cb.showTextAligned(PdfContentByte.ALIGN_LEFT,
text + " Left", 250, 600, 0);

// we
draw some text on a certain position

cb.setTextMatrix(100, 400);

cb.showText("Text at position
100,400.");

// we
draw some rotated text on a certain position

cb.setTextMatrix(0, 1, -1, 0, 100,
300);

cb.showText("Text at position
100,300, rotated 90 degrees.");

// we
draw some mirrored, rotated text on a certain position

cb.setTextMatrix(0, 1, 1, 0, 200,
200);

cb.showText("Text at position
200,200, mirrored and rotated 90 degrees.");

// we
tell the contentByte, we‘ve finished drawing text

cb.endText();

}

catch(DocumentException
de)

{

Console.Error.WriteLine(de.Message);

}

catch(IOException
ioe)

{

Console.Error.WriteLine(ioe.Message);

}

// step 5: we
close the document

document.Close();

}

}


示例代码1003

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap1003

{

public static void Main()

{

Console.WriteLine("Chapter 10
example 3: Templates");

// step 1:
creation of a document-object

Document document = new Document();

try

{

// step
2:

// we
create a writer that listens to the document

// and
directs a PDF-stream to a file

PdfWriter writer =
PdfWriter.getInstance(document, new FileStream("Chap1003.pdf",
FileMode.Create));

// step
3: we open the document

document.Open();

// step
4: we grab the ContentByte and do some stuff with it

PdfContentByte cb =
writer.DirectContent;

// we create
a PdfTemplate

PdfTemplate template =
cb.createTemplate(500, 200);

// we
add some graphics

template.moveTo(0, 200);

template.lineTo(500, 0);

template.stroke();

template.setRGBColorStrokeF(255f,
0f, 0f);

template.circle(250f, 100f, 80f);

template.stroke();

// we
add some text

template.beginText();

BaseFont bf =
BaseFont.createFont(BaseFont.HELVETICA, BaseFont.CP1252,
BaseFont.NOT_EMBEDDED);

template.setFontAndSize(bf, 12);

template.setTextMatrix(100, 100);

template.showText("Text at
the position 100,100 (relative to the template!)");

template.endText();

// we
add the template on different positions

cb.addTemplate(template, 0, 0);

cb.addTemplate(template, 0, 1, -1,
0, 500, 200);

cb.addTemplate(template, .5f, 0,
0, .5f, 100, 400);

// we go
to a new page

document.newPage();

cb.addTemplate(template, 0, 400);

cb.addTemplate(template, 2, 0, 0,
2, -200, 400);

}

catch(DocumentException
de)

{

Console.Error.WriteLine(de.Message);

}

catch(IOException
ioe)

{

Console.Error.WriteLine(ioe.Message);

}

// step 5: we
close the document

document.Close();

}

}


示例代码1004

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap1004

{

public static void Main()

{

Console.WriteLine("Chapter 10
example 4: Templates");

// step 1:
creation of a document-object

Document document = new Document();

try

{

// step
2:

// we
create a writer that listens to the document

// and
directs a PDF-stream to a file

PdfWriter writer =
PdfWriter.getInstance(document, new
FileStream("Chap1004.pdf", FileMode.Create));

// step
3: we open the document

document.Open();

// step
4: we grab the ContentByte and do some stuff with it

PdfContentByte cb =
writer.DirectContent;

// we
create a PdfTemplate

PdfTemplate template =
cb.createTemplate(50, 50);

BaseFont bf =
BaseFont.createFont(BaseFont.HELVETICA, BaseFont.CP1252,
BaseFont.NOT_EMBEDDED);

// we
add a number of pages

int
i;

for
(i = 1; i < 5; i++)

{

String text = "Page
" + writer.PageNumber + " of ";

float
len = bf.getWidthPoint(text, 12);

cb.beginText();

cb.setFontAndSize(bf, 12);

cb.setTextMatrix(280, 40);

cb.showText(text);

cb.endText();

cb.addTemplate(template, 280
+ len, 40);

document.newPage();

}

template.beginText();

template.setFontAndSize(bf, 12);

template.showText((writer.PageNumber
- 1).ToString());

template.endText();

}

catch(DocumentException
de)

{

Console.Error.WriteLine(de.Message);

}

catch(IOException
ioe)

{

Console.Error.WriteLine(ioe.Message);

}

// step 5: we
close the document

document.Close();

}

}


示例代码1005

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap1005

{

public static void Main()

{

Console.WriteLine("Chapter 10
example 5: Simple Columns");

// step 1:
creation of a document-object

Document document = new Document();

try

{

// step
2:

// we
create a writer that listens to the document

// and
directs a PDF-stream to a file

PdfWriter writer =
PdfWriter.getInstance(document, new
FileStream("Chap1005.pdf", FileMode.Create));

// step
3: we open the document

document.Open();

// step
4:

// we
create some content

BaseFont bf =
BaseFont.createFont(BaseFont.COURIER, BaseFont.CP1252, BaseFont.NOT_EMBEDDED);

Font font = new Font(bf, 11, Font.NORMAL);

Phrase unicodes = new Phrase(15, "UNI\n", font);

Phrase characters = new Phrase(15, "\n", font);

Phrase names = new Phrase(15, "NAME\n", font);

for
(int i = 0; i < 27; i++)

{

unicodes.Add(uni[i] +
"\n");

characters.Add(code[i] +
"\n");

names.Add(name[i] +
"\n");

}

// we
grab the ContentByte and do some stuff with it

PdfContentByte cb =
writer.DirectContent;

ColumnText ct = new ColumnText(cb);

ct.setSimpleColumn(unicodes, 60,
300, 100, 300 + 28 * 15, 15, Element.ALIGN_CENTER);

ct.go();

cb.rectangle(103, 295, 52, 8 + 28
* 15);

cb.stroke();

ct.setSimpleColumn(characters,
105, 300, 150, 300 + 28 * 15, 15, Element.ALIGN_RIGHT);

ct.go();

ct.setSimpleColumn(names, 160,
300, 500, 300 + 28 * 15, 15, Element.ALIGN_LEFT);

ct.go();

}

catch(DocumentException
de)

{

Console.Error.WriteLine(de.Message);

}

catch(IOException
ioe)

{

Console.Error.WriteLine(ioe.Message);

}

// step 5: we
close the document

document.Close();

}

public static String[] uni = new
String[27];

public static String[] code = new
String[27];

public static String[] name = new
String[27];

static
Chap1005()

{

uni[0]="\\u0152";

code[0]="\u0152";

name[0]="LATIN CAPITAL LIGATURE
OE";

uni[1]="\\u0153";

code[1]="\u0153";

name[1]="LATIN SMALL LIGATURE
OE";

uni[2]="\\u0160";

code[2]="\u0160";

name[2]="LATIN CAPITAL LETTER S
WITH CARON";

uni[3]="\\u0161";

code[3]="\u0161";

name[3]="LATIN SMALL LETTER S WITH
CARON";

uni[4]="\\u0178";

code[4]="\u0178";

name[4]="LATIN CAPITAL LETTER Y
WITH DIAERESIS";

uni[5]="\\u017D";

code[5]="\u017D";

name[5]="LATIN CAPITAL LETTER Z
WITH CARON";

uni[6]="\\u017E";

code[6]="\u017E";

name[6]="LATIN SMALL LETTER Z WITH
CARON";

uni[7]="\\u0192";

code[7]="\u0192";

name[7]="LATIN SMALL LETTER F WITH
HOOK";

uni[8]="\\u02C6";

code[8]="\u02C6";

name[8]="MODIFIER LETTER
CIRCUMFLEX ACCENT";

uni[9]="\\u02DC";

code[9]="\u02DC";

name[9]="SMALL TILDE";

uni[10]="\\u2013";

code[10]="\u2013";

name[10]="EN DASH";

uni[11]="\\u2014";

code[11]="\u2014";

name[11]="EM DASH";

uni[12]="\\u2018";

code[12]="\u2018";

name[12]="LEFT SINGLE QUOTATION
MARK";

uni[13]="\\u2019";

code[13]="\u2019";

name[13]="RIGHT SINGLE QUOTATION
MARK";

uni[14]="\\u201A";

code[14]="\u201A";

name[14]="SINGLE LOW-9 QUOTATION
MARK";

uni[15]="\\u201C";

code[15]="\u201C";

name[15]="LEFT DOUBLE QUOTATION
MARK";

uni[16]="\\u201D";

code[16]="\u201D";

name[16]="RIGHT DOUBLE QUOTATION
MARK";

uni[17]="\\u201E";

code[17]="\u201E";

name[17]="DOUBLE LOW-9 QUOTATION
MARK";

uni[18]="\\u2020";

code[18]="\u2020";

name[18]="DAGGER";

uni[19]="\\u2021";

code[19]="\u2021";

name[19]="DOUBLE DAGGER";

uni[20]="\\u2022";

code[20]="\u2022";

name[20]="BULLET";

uni[21]="\\u2026";

code[21]="\u2026";

name[21]="HORIZONTAL
ELLIPSIS";

uni[22]="\\u2030";

code[22]="\u2030";

name[22]="PER MILLE SIGN";

uni[23]="\\u2039";

code[23]="\u2039";

name[23]="SINGLE LEFT-POINTING
ANGLE QUOTATION MARK";

uni[24]="\\u203A";

code[24]="\u203A";

name[24]="SINGLE RIGHT-POINTING
ANGLE QUOTATION MARK";

uni[25]="\\u20AC";

code[25]="\u20AC";

name[25]="EURO SIGN";

uni[26]="\\u2122";

code[26]="\u2122";

name[26]="TRADE MARK SIGN";

}

}


示例代码1006

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap1006

{

public static void Main()

{

Console.WriteLine("Chapter 10
example 6: Simple Columns");

// step 1:
creation of a document-object

Document document = new Document();

try

{

// step
2:

// we
create a writer that listens to the document

// and
directs a PDF-stream to a file

PdfWriter writer =
PdfWriter.getInstance(document, new
FileStream("Chap1006.pdf", FileMode.Create));

// step
3: we open the document

document.Open();

// step
4:

// we
grab the ContentByte and do some stuff with it

PdfContentByte cb =
writer.DirectContent;

BaseFont bf =
BaseFont.createFont(BaseFont.COURIER, BaseFont.CP1252, BaseFont.NOT_EMBEDDED);

Font font = new Font(bf, 11, Font.NORMAL);

ColumnText ct = new ColumnText(cb);

ct.setSimpleColumn(60, 300, 100,
300 + 28 * 15, 15, Element.ALIGN_CENTER);

ct.addText(new Phrase(15, "UNI\n", font));

for
(int i = 0; i < 27; i++)

{

ct.addText(new Phrase(15, uni[i] + "\n", font));

}

ct.go();

cb.rectangle(103, 295, 52, 8 + 28
* 15);

cb.stroke();

ct.setSimpleColumn(105, 300, 150,
300 + 28 * 15, 15, Element.ALIGN_RIGHT);

ct.addText(new Phrase(15, "char\n", font));

for
(int i = 0; i < 27; i++)

{

ct.addText(new Phrase(15, code[i] + "\n", font));

}

ct.go();

ct.setSimpleColumn(160, 300, 500,
300 + 28 * 15, 15, Element.ALIGN_LEFT);

ct.addText(new Phrase(15, "NAME\n", font));

for
(int i = 0; i < 27; i++)

{

ct.addText(new Phrase(15, name[i] + "\n", font));

}

ct.go();

}

catch(DocumentException
de)

{

Console.Error.WriteLine(de.Message);

}

catch(IOException
ioe)

{

Console.Error.WriteLine(ioe.Message);

}

// step 5: we
close the document

document.Close();

}

public static String[] uni = new
String[27];

public static String[] code = new
String[27];

public static String[] name = new
String[27];

static
Chap1006()

{

uni[0]="\\u0152";

code[0]="\u0152";

name[0]="LATIN CAPITAL LIGATURE
OE";

uni[1]="\\u0153";

code[1]="\u0153";

name[1]="LATIN SMALL LIGATURE
OE";

uni[2]="\\u0160";

code[2]="\u0160";

name[2]="LATIN CAPITAL LETTER S
WITH CARON";

uni[3]="\\u0161";

code[3]="\u0161";

name[3]="LATIN SMALL LETTER S WITH
CARON";

uni[4]="\\u0178";

code[4]="\u0178";

name[4]="LATIN CAPITAL LETTER Y
WITH DIAERESIS";

uni[5]="\\u017D";

code[5]="\u017D";

name[5]="LATIN CAPITAL LETTER Z
WITH CARON";

uni[6]="\\u017E";

code[6]="\u017E";

name[6]="LATIN SMALL LETTER Z WITH
CARON";

uni[7]="\\u0192";

code[7]="\u0192";

name[7]="LATIN SMALL LETTER F WITH
HOOK";

uni[8]="\\u02C6";

code[8]="\u02C6";

name[8]="MODIFIER LETTER
CIRCUMFLEX ACCENT";

uni[9]="\\u02DC";

code[9]="\u02DC";

name[9]="SMALL TILDE";

uni[10]="\\u2013";

code[10]="\u2013";

name[10]="EN DASH";

uni[11]="\\u2014";

code[11]="\u2014";

name[11]="EM DASH";

uni[12]="\\u2018";

code[12]="\u2018";

name[12]="LEFT SINGLE QUOTATION
MARK";

uni[13]="\\u2019";

code[13]="\u2019";

name[13]="RIGHT SINGLE QUOTATION
MARK";

uni[14]="\\u201A";

code[14]="\u201A";

name[14]="SINGLE LOW-9 QUOTATION
MARK";

uni[15]="\\u201C";

code[15]="\u201C";

name[15]="LEFT DOUBLE QUOTATION
MARK";

uni[16]="\\u201D";

code[16]="\u201D";

name[16]="RIGHT DOUBLE QUOTATION
MARK";

uni[17]="\\u201E";

code[17]="\u201E";

name[17]="DOUBLE LOW-9 QUOTATION
MARK";

uni[18]="\\u2020";

code[18]="\u2020";

name[18]="DAGGER";

uni[19]="\\u2021";

code[19]="\u2021";

name[19]="DOUBLE DAGGER";

uni[20]="\\u2022";

code[20]="\u2022";

name[20]="BULLET";

uni[21]="\\u2026";

code[21]="\u2026";

name[21]="HORIZONTAL
ELLIPSIS";

uni[22]="\\u2030";

code[22]="\u2030";

name[22]="PER MILLE SIGN";

uni[23]="\\u2039";

code[23]="\u2039";

name[23]="SINGLE LEFT-POINTING
ANGLE QUOTATION MARK";

uni[24]="\\u203A";

code[24]="\u203A";

name[24]="SINGLE RIGHT-POINTING
ANGLE QUOTATION MARK";

uni[25]="\\u20AC";

code[25]="\u20AC";

name[25]="EURO SIGN";

uni[26]="\\u2122";

code[26]="\u2122";

name[26]="TRADE MARK SIGN";

}

}


示例代码1007

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap1007

{

public static void Main()

{

Console.WriteLine("Chapter 10
example 7: Columns");

// step 1:
creation of a document-object

Document document = new Document();

try

{

// step
2:

// we
create a writer that listens to the document

// and
directs a PDF-stream to a file

PdfWriter writer =
PdfWriter.getInstance(document, new FileStream("Chap1007.pdf",
FileMode.Create));

// step
3: we open the document

document.Open();

// step
4:

BaseFont bf =
BaseFont.createFont(BaseFont.HELVETICA, BaseFont.CP1252,
BaseFont.NOT_EMBEDDED);

Font font = new Font(bf, 11, Font.NORMAL);

// we
grab the ContentByte and do some stuff with it

PdfContentByte cb =
writer.DirectContent;

ColumnText ct = new ColumnText(cb);

float[]
right = {70, 320};

float[]
left = {300, 550};

ct.addText(new Phrase("GALLIA est omnis divisa in partes tres, quarum
unam incolunt Belgae, aliam Aquitani, tertiam qui ipsorum lingua Celtae, nostra
Galli appellantur.  Hi omnes lingua,
institutis, legibus inter se differunt. Gallos ab Aquitanis Garumna flumen, a
Belgis Matrona et Sequana dividit. Horum omnium fortissimi sunt Belgae,
propterea quod a cultu atque humanitate provinciae longissime absunt, minimeque
ad eos mercatores saepe commeant atque ea quae ad effeminandos animos pertinent
important, proximique sunt Germanis, qui trans Rhenum incolunt, quibuscum
continenter bellum gerunt.  Qua de causa
Helvetii quoque reliquos Gallos virtute praecedunt, quod fere cotidianis
proeliis cum Germanis contendunt, cum aut suis finibus eos prohibent aut ipsi
in eorum finibus bellum gerunt.\n",
FontFactory.getFont(FontFactory.HELVETICA, 12)));

ct.addText(new Phrase("[Eorum una, pars, quam Gallos obtinere dictum
est, initium capit a flumine Rhodano, continetur Garumna flumine, Oceano,
finibus Belgarum, attingit etiam ab Sequanis et Helvetiis flumen Rhenum, vergit
ad septentriones. Belgae ab extremis Galliae finibus oriuntur, pertinent ad
inferiorem partem fluminis Rheni, spectant in septentrionem et orientem solem.
Aquitania a Garumna flumine ad Pyrenaeos montes et eam partem Oceani quae est
ad Hispaniam pertinet; spectat inter occasum solis et septentriones.]\n",
FontFactory.getFont(FontFactory.HELVETICA, 12)));

ct.addText(new Phrase("Apud Helvetios longe nobilissimus fuit et
ditissimus Orgetorix.  Is M. Messala, [et
P.] M.  Pisone consulibus regni
cupiditate inductus coniurationem nobilitatis fecit et civitati persuasit ut de
finibus suis cum omnibus copiis exirent: 
perfacile esse, cum virtute omnibus praestarent, totius Galliae imperio
potiri.  Id hoc facilius iis persuasit, quod
undique loci natura Helvetii continentur: 
una ex parte flumine Rheno latissimo atque altissimo, qui agrum
Helvetium a Germanis dividit; altera ex parte monte Iura altissimo, qui est
inter Sequanos et Helvetios; tertia lacu Lemanno et flumine Rhodano, qui
provinciam nostram ab Helvetiis dividit. 
His rebus fiebat ut et minus late vagarentur et minus facile finitimis
bellum inferre possent; qua ex parte homines bellandi cupidi magno dolore
adficiebantur.  Pro multitudine autem
hominum et pro gloria belli atque fortitudinis angustos se fines habere
arbitrabantur, qui in longitudinem milia passuum CCXL, in latitudinem CLXXX
patebant.\n", FontFactory.getFont(FontFactory.HELVETICA, 12)));

ct.addText(new Phrase("His rebus adducti et auctoritate Orgetorigis permoti
constituerunt ea quae ad proficiscendum pertinerent comparare, iumentorum et
carrorum quam maximum numerum coemere, sementes quam maximas facere, ut in
itinere copia frumenti suppeteret, cum proximis civitatibus pacem et amicitiam
confirmare.  Ad eas res conficiendas
biennium sibi satis esse duxerunt; in tertium annum profectionem lege
confirmant.  Ad eas res conficiendas
Orgetorix deligitur.  Is sibi legationem
ad civitates suscipit.  In eo itinere
persuadet Castico, Catamantaloedis filio, Sequano, cuius pater regnum in
Sequanis multos annos obtinuerat et a senatu populi Romani amicus appellatus
erat, ut regnum in civitate sua occuparet, quod pater ante habuerit; itemque
Dumnorigi Haeduo, fratri Diviciaci, qui eo tempore principatum in civitate obtinebat
ac maxime plebi acceptus erat, ut idem conaretur persuadet eique filiam suam in
matrimonium dat.  Perfacile factu esse
illis probat conata perficere, propterea quod ipse suae civitatis imperium
obtenturus esset:  non esse dubium quin
totius Galliae plurimum Helvetii possent; se suis copiis suoque exercitu illis
regna conciliaturum confirmat.  Hac
oratione adducti inter se fidem et ius iurandum dant et regno occupato per tres
potentissimos ac firmissimos populos totius Galliae sese potiri posse sperant.\n",
FontFactory.getFont(FontFactory.HELVETICA, 12)));

ct.addText(new Phrase("Ea res est Helvetiis per indicium enuntiata.  Moribus suis Orgetoricem ex vinculis causam
dicere coegerunt; damnatum poenam sequi oportebat, ut igni cremaretur.  Die constituta causae dictionis Orgetorix ad
iudicium omnem suam familiam, ad hominum milia decem, undique coegit, et omnes
clientes obaeratosque suos, quorum magnum numerum habebat, eodem conduxit; per
eos ne causam diceret se eripuit.  Cum
civitas ob eam rem incitata armis ius suum exequi conaretur multitudinemque
hominum ex agris magistratus cogerent, Orgetorix mortuus est; neque abest
suspicio, ut Helvetii arbitrantur, quin ipse sibi mortem consciverit.",
FontFactory.getFont(FontFactory.HELVETICA, 12)));

ct.Indent = 20;

int
status = 0;

int
column = 0;

while((status
& ColumnText.NO_MORE_TEXT) == 0)

{

Console.WriteLine("page
" + writer.PageNumber + " column " + column);

ct.setSimpleColumn(right[column],
60, left[column], 790, 16, Element.ALIGN_JUSTIFIED);

status = ct.go();

if
((status & ColumnText.NO_MORE_COLUMN) != 0)

{

column++;

if
(column > 1)

{

document.newPage();

column = 0;

}

}

}

}

catch(DocumentException
de)

{

Console.Error.WriteLine(de.Message);

}

catch(IOException
ioe)

{

Console.Error.WriteLine(ioe.Message);

}

// step 5: we
close the document

document.Close();

}

}


示例代码1008

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap1008

{

public static void Main()

{

Console.WriteLine("Chapter 10
example 8: Irregular columns");

// step 1:
creation of a document-object

Document document = new Document();

try

{

// step
2: creation of the writer

PdfWriter writer =
PdfWriter.getInstance(document, new
FileStream("Chap1008.pdf", FileMode.Create));

// step
3: we open the document

document.Open();

// step
4:

BaseFont bf =
BaseFont.createFont(BaseFont.HELVETICA, BaseFont.CP1252,
BaseFont.NOT_EMBEDDED);

Font font = new Font(bf, 11, Font.NORMAL);

// we
grab the contentbyte and do some stuff with it

PdfContentByte cb =
writer.DirectContent;

PdfTemplate t =
cb.createTemplate(600, 800);

Image caesar =
Image.getInstance("caesar_coin.jpg");

cb.addImage(caesar, 100, 0, 0,
100, 260, 595);

t.GrayFill = 0.75f;

t.moveTo(310, 112);

t.lineTo(280, 60);

t.lineTo(340, 60);

t.closePath();

t.moveTo(310, 790);

t.lineTo(310, 710);

t.moveTo(310, 580);

t.lineTo(310, 122);

t.stroke();

cb.addTemplate(t, 0, 0);

ColumnText ct = new ColumnText(cb);

ct.addText(new Phrase("GALLIA est omnis divisa in partes tres, quarum
unam incolunt Belgae, aliam Aquitani, tertiam qui ipsorum lingua Celtae, nostra
Galli appellantur.  Hi omnes lingua,
institutis, legibus inter se differunt. Gallos ab Aquitanis Garumna flumen, a
Belgis Matrona et Sequana dividit. Horum omnium fortissimi sunt Belgae,
propterea quod a cultu atque humanitate provinciae longissime absunt, minimeque
ad eos mercatores saepe commeant atque ea quae ad effeminandos animos pertinent
important, proximique sunt Germanis, qui trans Rhenum incolunt, quibuscum
continenter bellum gerunt.  Qua de causa
Helvetii quoque reliquos Gallos virtute praecedunt, quod fere cotidianis
proeliis cum Germanis contendunt, cum aut suis finibus eos prohibent aut ipsi
in eorum finibus bellum gerunt.\n",
FontFactory.getFont(FontFactory.HELVETICA, 12)));

ct.addText(new Phrase("[Eorum una, pars, quam Gallos obtinere dictum
est, initium capit a flumine Rhodano, continetur Garumna flumine, Oceano,
finibus Belgarum, attingit etiam ab Sequanis et Helvetiis flumen Rhenum, vergit
ad septentriones. Belgae ab extremis Galliae finibus oriuntur, pertinent ad
inferiorem partem fluminis Rheni, spectant in septentrionem et orientem solem.
Aquitania a Garumna flumine ad Pyrenaeos montes et eam partem Oceani quae est
ad Hispaniam pertinet; spectat inter occasum solis et septentriones.]\n",
FontFactory.getFont(FontFactory.HELVETICA, 12)));

ct.addText(new Phrase("Apud Helvetios longe nobilissimus fuit et
ditissimus Orgetorix.  Is M. Messala, [et
P.] M.  Pisone consulibus regni
cupiditate inductus coniurationem nobilitatis fecit et civitati persuasit ut de
finibus suis cum omnibus copiis exirent: 
perfacile esse, cum virtute omnibus praestarent, totius Galliae imperio
potiri.  Id hoc facilius iis persuasit,
quod undique loci natura Helvetii continentur: 
una ex parte flumine Rheno latissimo atque altissimo, qui agrum
Helvetium a Germanis dividit; altera ex parte monte Iura altissimo, qui est
inter Sequanos et Helvetios; tertia lacu Lemanno et flumine Rhodano, qui
provinciam nostram ab Helvetiis dividit. 
His rebus fiebat ut et minus late vagarentur et minus facile finitimis
bellum inferre possent; qua ex parte homines bellandi cupidi magno dolore
adficiebantur.  Pro multitudine autem
hominum et pro gloria belli atque fortitudinis angustos se fines habere
arbitrabantur, qui in longitudinem milia passuum CCXL, in latitudinem CLXXX
patebant.\n", FontFactory.getFont(FontFactory.HELVETICA, 12)));

ct.addText(new Phrase("His rebus adducti et auctoritate Orgetorigis
permoti constituerunt ea quae ad proficiscendum pertinerent comparare,
iumentorum et carrorum quam maximum numerum coemere, sementes quam maximas
facere, ut in itinere copia frumenti suppeteret, cum proximis civitatibus pacem
et amicitiam confirmare.  Ad eas res
conficiendas biennium sibi satis esse duxerunt; in tertium annum profectionem
lege confirmant.  Ad eas res conficiendas
Orgetorix deligitur.  Is sibi legationem
ad civitates suscipit.  In eo itinere
persuadet Castico, Catamantaloedis filio, Sequano, cuius pater regnum in
Sequanis multos annos obtinuerat et a senatu populi Romani amicus appellatus
erat, ut regnum in civitate sua occuparet, quod pater ante habuerit; itemque
Dumnorigi Haeduo, fratri Diviciaci, qui eo tempore principatum in civitate
obtinebat ac maxime plebi acceptus erat, ut idem conaretur persuadet eique
filiam suam in matrimonium dat. 
Perfacile factu esse illis probat conata perficere, propterea quod ipse
suae civitatis imperium obtenturus esset: 
non esse dubium quin totius Galliae plurimum Helvetii possent; se suis
copiis suoque exercitu illis regna conciliaturum confirmat.  Hac oratione adducti inter se fidem et ius
iurandum dant et regno occupato per tres potentissimos ac firmissimos populos
totius Galliae sese potiri posse sperant.\n",
FontFactory.getFont(FontFactory.HELVETICA, 12)));

ct.addText(new Phrase("Ea res est Helvetiis per indicium enuntiata.  Moribus suis Orgetoricem ex vinculis causam
dicere coegerunt; damnatum poenam sequi oportebat, ut igni cremaretur.  Die constituta causae dictionis Orgetorix ad
iudicium omnem suam familiam, ad hominum milia decem, undique coegit, et omnes
clientes obaeratosque suos, quorum magnum numerum habebat, eodem conduxit; per
eos ne causam diceret se eripuit.  Cum
civitas ob eam rem incitata armis ius suum exequi conaretur multitudinemque
hominum ex agris magistratus cogerent, Orgetorix mortuus est; neque abest
suspicio, ut Helvetii arbitrantur, quin ipse sibi mortem consciverit.",
FontFactory.getFont(FontFactory.HELVETICA, 12)));

float[]
left1  = {70,790, 70,60};

float[]
right1 = {300,790, 300,700, 240,700, 240,590, 300,590, 300,106, 270,60};

float[]
left2  = {320,790, 320,700, 380,700,
380,590, 320,590, 320,106, 350,60};

float[]
right2 = {550,790, 550,60};

int
status = 0;

int
column = 0;

while
((status & ColumnText.NO_MORE_TEXT) == 0)

{

if
(column == 0)

{

ct.setColumns(left1,
right1);

column = 1;

}

else

{

ct.setColumns(left2,
right2);

column = 0;

}

status = ct.go();

ct.YLine = 790;

ct.Alignment =
Element.ALIGN_JUSTIFIED;

status = ct.go();

if
((column == 0) && ((status & ColumnText.NO_MORE_COLUMN) != 0))

{

document.newPage();

cb.addTemplate(t, 0, 0);

cb.addImage(caesar, 100,
0, 0, 100, 260, 595);

}

}

// step
5: we close the document

document.Close();

}

catch(DocumentException
de)

{

Console.Error.WriteLine(de.Message);

}

catch(IOException
ioe)

{

Console.Error.WriteLine(ioe.Message);

}

}

}


示例代码1009

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap1009

{

public static void Main()

{

Console.WriteLine("Chapter 10 example
9: a PdfPTable at an absolute position");

// step 1:
creation of a document-object

Document document = new Document(PageSize.A4, 50, 50, 50, 50);

try

{

// step
2:  we create a writer that listens to
the document

PdfWriter writer =
PdfWriter.getInstance(document, new
FileStream("Chap1009.pdf", FileMode.Create));

// step
3: we open the document

document.Open();

// step
4: we add some content

PdfPTable table = new PdfPTable(4);

table.DefaultCell.Border =
Rectangle.LEFT | Rectangle.RIGHT;

for
(int k = 0; k < 24; ++k)

{

table.addCell("cell
" + k);

}

table.TotalWidth = 300;

table.writeSelectedRows(0, -1,
100, 600, writer.DirectContent);

// step
5: we close the document

document.Close();

}

catch
(Exception de)

{

Console.WriteLine(de.Message);

Console.WriteLine(de.StackTrace);

}

}

}


示例代码1010

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap1010

{

public static void Main()

{

Console.WriteLine("Chapter 10
example 10: nested PdfPTables");

// step 1:
creation of a document-object

Document document = new Document(PageSize.A4, 50, 50, 50, 50);

try

{

// step
2: we create a writer that listens to the document

PdfWriter writer =
PdfWriter.getInstance(document, new
FileStream("Chap1010.pdf", FileMode.Create));

// step
3: we open the document

document.Open();

// step
4: we add some content

PdfPTable table = new PdfPTable(4);

PdfPTable nested1 = new PdfPTable(2);

nested1.addCell("1.1");

nested1.addCell("1.2");

PdfPTable nested2 = new PdfPTable(1);

nested2.addCell("2.1");

nested2.addCell("2.2");

for
(int k = 0; k < 24; ++k)

{

if
(k == 1)

{

table.addCell(nested1);

}

else
if (k == 20)

{

table.addCell(nested2);

}

else

{

table.addCell("cell
" + k);

}

}

table.TotalWidth = 300;

table.writeSelectedRows(0, -1,
100, 600, writer.DirectContent);

// step
5: we close the document

document.Close();

}

catch
(Exception de)

{

Console.Error.WriteLine(de.Message);

Console.Error.WriteLine(de.StackTrace);

}

}

}


示例代码1011

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap1011

{

public static void Main()

{

Console.WriteLine("Chapter 10
example 11: a PdfPTable in a template");

// step 1:
creation of a document-object

Rectangle rect = new Rectangle(PageSize.A4);

rect.BackgroundColor = new Color(238, 221, 88);

Document document = new Document(rect, 50, 50, 50, 50);

try

{

// step
2: we create a writer that listens to the document

PdfWriter writer =
PdfWriter.getInstance(document, new
FileStream("Chap1011.pdf", FileMode.Create));

// step
3: we open the document

document.Open();

// step
4:

PdfTemplate template =
writer.DirectContent.createTemplate(20, 20);

BaseFont bf =
BaseFont.createFont(BaseFont.HELVETICA, BaseFont.WINANSI,
BaseFont.NOT_EMBEDDED);

String text =
"Vertical";

float
size = 16;

float
width = bf.getWidthPoint(text, size);

template.beginText();

template.setRGBColorFillF(1, 1,
1);

template.setFontAndSize(bf, size);

template.setTextMatrix(0, 2);

template.showText(text);

template.endText();

template.Width = width;

template.Height = size + 2;

Image img = Image.getInstance(template);

img.setRotationDegrees(90);

Chunk ck = new Chunk(img, 0, 0);

PdfPTable table = new PdfPTable(3);

table.WidthPercentage = 100;

table.DefaultCell.HorizontalAlignment
= Element.ALIGN_CENTER;

table.DefaultCell.VerticalAlignment
= Element.ALIGN_MIDDLE;

PdfPCell cell = new PdfPCell(img);

cell.Padding = 4;

cell.BackgroundColor = new Color(0, 0, 255);

cell.HorizontalAlignment =
Element.ALIGN_CENTER;

table.addCell("I see a
template on my right");

table.addCell(cell);

table.addCell("I see a
template on my left");

table.addCell(cell);

table.addCell("I see a
template everywhere");

table.addCell(cell);

table.addCell("I see a
template on my right");

table.addCell(cell);

table.addCell("I see a template
on my left");

Paragraph p1 = new Paragraph("This is a template ");

p1.Add(ck);

p1.Add(" just here.");

p1.Leading = img.ScaledHeight *
1.1f;

document.Add(p1);

document.Add(table);

Paragraph p2 = new Paragraph("More templates ");

p2.Leading = img.ScaledHeight *
1.1f;

p2.Alignment =
Element.ALIGN_JUSTIFIED;

img.scalePercent(70);

for
(int k = 0; k < 20; ++k)

p2.Add(ck);

document.Add(p2);

// step
5: we close the document

document.Close();

}

catch
(Exception de)

{

Console.Error.WriteLine(de.Message);

Console.Error.WriteLine(de.StackTrace);

}

}

}

示例代码1012

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap1012

{

static public String[] headings = {

"Book/Product Model:",

"Sales Handle:",

"Why We Published this Book/Product
Model:",

"Key benefits:",

"About the Author(s):",

"Technology/Topic Overview: ",

"Book/Product Content Summary:",

"Audience:",

"What‘s on the CD/DVD/Web:"

};

static public String[] texts = {

"Ideally, choose one title (2-3 if
absolutely necessary) that this book should perform like. Include full title,
ISBN, author, and any sell through numbers if possible.",

"One line description about the
sales.",

"Brief description (one-two lines) on
the importance of this book to the audience.",

"What benefit does this book provide to
the consumer? (expert advice, speed, fun, productivity). Why should the
Retailer/Wholesaler select this book over its competition? What are the unique
features about this book should be highlighted? What makes this book different,
better? From other books and the previous edition?",

"What makes this person so
special?  Is she/he an expert, creator of
the technology, educational leader, etc.? What is their background, and what
relevant experiences do they have to make them the BEST choice? Have
he/she/they won awards or been recognized in any way. Other books poublished by
the author.\n1. Book one.\n2. Book two.",

"In brief two to five line description
of the technology, topic or relevant information. Please keep descriptions
succinct.",

"Ideal describe the contents of this
book. What will this book do for the reader? Will this book help them optimize
their system? Increase productivity? offer tips and stragegies?",

"Who is your intended customer?
Experts? Power users? Business professionals? Programmers? What are the
demographics?",

"What is included on the Cd or Web
site? Why is it necessary and what will it do for the purchaser (source code,
examples, case studies)?\nIs there a value that can be associated with what is
on the CD/DVD or Web?"

};

public static void Main()

{

Console.WriteLine("Chapter 10
example 12: PdfPTables and columns");

// step 1:
creation of a document-object

Document document = new Document(PageSize.LETTER, 90, 54, 72, 72);

try

{

// step
2: we create a writer that listens to the document

PdfWriter writer =
PdfWriter.getInstance(document, new
FileStream("Chap1012.pdf", FileMode.Create));

float
gutter = 20;

int
numColumns = 3;

float
fullWidth = document.Right - document.Left;

float
columnWidth = (fullWidth - (numColumns - 1) * gutter) / numColumns;

float[]
allColumns = new float[numColumns];
// left

for
(int k = 0; k < numColumns; ++k)

{

allColumns[k] = document.Left
+ (columnWidth + gutter) * k;

}

// set
the fonts

Font font24B =
FontFactory.getFont(FontFactory.TIMES_NEW_ROMAN, 24, Font.BOLD);

Font font10B =
FontFactory.getFont(FontFactory.TIMES_NEW_ROMAN, 10, Font.BOLD);

Font font14B =
FontFactory.getFont(FontFactory.TIMES_NEW_ROMAN, 14, Font.BOLD, new Color(255, 0, 0));

Font font9 =
FontFactory.getFont(FontFactory.TIMES_NEW_ROMAN, 9);

Font font11 =
FontFactory.getFont(FontFactory.TIMES_NEW_ROMAN, 11);

// step
3: we open the document

document.Open();

// step
4:

// get
the stream content

PdfContentByte cb =
writer.DirectContent;

//
headers

Phrase fullTitle = new Phrase("Full Title", font24B);

float
currentY = document.Top;

ColumnText ct = new ColumnText(cb);

ct.setSimpleColumn(fullTitle,
document.Left, 0, document.Right, document.Top, 24, Element.ALIGN_JUSTIFIED);

ct.go();

currentY = ct.YLine;

currentY -= 4;

cb.LineWidth = 1;

cb.moveTo(document.Left,
currentY);

cb.lineTo(document.Right,
currentY);

cb.stroke();

currentY -= 4;

ct.YLine = currentY;

ct.addText(new Chunk("Author: Name of the author comes here",
font10B));

ct.Leading = 10;

ct.go();

currentY = ct.YLine;

currentY -= 15;

float
topColumn = currentY;

for
(int k = 1; k < numColumns; ++k)

{

float
x = allColumns[k] - gutter / 2;

cb.moveTo(x, topColumn);

cb.lineTo(x,
document.Bottom);

}

cb.stroke();

Image img =
Image.getInstance("cover.png");

cb.addImage(img, img.ScaledWidth,
0, 0, img.ScaledHeight, document.Left, currentY - img.ScaledHeight);

currentY -= img.ScaledHeight + 10;

ct.YLine = currentY;

ct.addText(new Chunk("Key Data:", font14B));

ct.go();

currentY = ct.YLine;

currentY -= 4;

PdfPTable ptable = new PdfPTable(2);

ptable.DefaultCell.PaddingLeft =
4;

ptable.DefaultCell.PaddingTop = 0;

ptable.DefaultCell.PaddingBottom =
4;

ptable.addCell(new Phrase("Imprint Name:", font9));

ptable.addCell(new Phrase("Prentice Hall", font9));

ptable.addCell(new Phrase("Series Name:", font9));

ptable.addCell(new Phrase("", font9));

ptable.addCell(new Phrase("ISBN:", font9));

ptable.addCell(new Phrase("Hall", font9));

ptable.addCell(new Phrase("UPC Code:", font9));

ptable.addCell(new Phrase("0789718103", font9));

ptable.addCell(new Phrase("EAN #", font9));

ptable.addCell(new Phrase("0786718103", font9));

ptable.addCell(new Phrase("Price:", font9));

ptable.addCell(new Phrase("49.99", font9));

ptable.addCell(new Phrase("Page Count:", font9));

ptable.addCell(new Phrase("500", font9));

ptable.addCell(new Phrase("Discount:", font9));

ptable.addCell(new Phrase("10%", font9));

ptable.addCell(new Phrase("Trim Size:", font9));

ptable.addCell(new Phrase("420x340", font9));

ptable.addCell(new Phrase("Cover:", font9));

ptable.addCell(new Phrase("Hard", font9));

ptable.addCell(new Phrase("Interior Color:", font9));

ptable.addCell(new Phrase("none", font9));

ptable.addCell(new Phrase("Media with book:", font9));

ptable.addCell(new Phrase("CD", font9));

ptable.addCell(new Phrase("Author(s):", font9));

ptable.addCell(new Phrase("Ben Forta", font9));

ptable.addCell(new Phrase("Editor:", font9));

ptable.addCell(new Phrase("Ben Forta", font9));

ptable.addCell(new Phrase("Pub Date:", font9));

ptable.addCell(new Phrase("06/05/1998", font9));

ptable.TotalWidth = columnWidth;

currentY =
ptable.writeSelectedRows(0, -1, document.Left, currentY, cb) - 20;

for
(int k = 0; k < headings.Length; ++k)

{

ct.addText(new Chunk(headings[k] + "\n", font14B));

ct.addText(new Chunk(texts[k] + "\n\n", font11));

}

int
currentColumn = 0;

ct.setSimpleColumn(allColumns[currentColumn],
document.Bottom,

allColumns[currentColumn] +
columnWidth, currentY, 15, Element.ALIGN_JUSTIFIED);

ct.setLeading(2, 1);

for
(;;)

{

int
rc = ct.go();

if
((rc & ColumnText.NO_MORE_TEXT) != 0)

break;

//
we run out of column. Let‘s go to another one

++currentColumn;

if
(currentColumn >= allColumns.Length)

break;

ct.setSimpleColumn(allColumns[currentColumn],
document.Bottom,

allColumns[currentColumn]
+ columnWidth, topColumn, 15, Element.ALIGN_JUSTIFIED);

ct.setLeading(2, 1);

}

// step
5: we close the document

document.Close();

}

catch
(Exception de)

{

Console.Error.WriteLine(de.Message);

Console.Error.WriteLine(de.StackTrace);

}

}

}


示例代码1013

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap1013

{

public static void
Main(String[] args)

{

Console.WriteLine("Chapter 10
Example 13: Spot Color");

// step 1:
creation of a document-object

Document document = new Document();

try

{

// step
2:

// we
create a writer that listens to the document

// and
directs a PDF-stream to a file

PdfWriter writer =
PdfWriter.getInstance(document, new
FileStream("Chap1013.pdf", FileMode.Create));

BaseFont bf =
BaseFont.createFont("Helvetica", "winansi",
BaseFont.NOT_EMBEDDED);

// step
3: we open the document

document.Open();

// step
4: we add some content

PdfContentByte cb =
writer.DirectContent;

// Note:
I made up these names unless someone give me a PANTONE swatch as gift
([email protected])

PdfSpotColor spc_cmyk = new PdfSpotColor("PANTONE 280 CV", 0.25f, new CMYKColor(0.9f, .2f, .3f, .1f));

PdfSpotColor spc_rgb = new PdfSpotColor("PANTONE 147", 0.9f, new Color(114, 94, 38));

PdfSpotColor spc_g = new PdfSpotColor("PANTONE 100 CV", 0.5f, new GrayColor(0.9f));

//
Stroke a rectangle with CMYK alternate

cb.setColorStroke(spc_cmyk, .5f);

cb.LineWidth = 10f;

// draw
a rectangle

cb.rectangle(100, 700, 100, 100);

// add
the diagonal

cb.moveTo(100, 700);

cb.lineTo(200, 800);

//
stroke the lines

cb.stroke();

// Fill
a rectangle with CMYK alternate

cb.setColorFill(spc_cmyk,
spc_cmyk.Tint);

cb.rectangle(250, 700, 100, 100);

cb.fill();

//
Stroke a circle with RGB alternate

cb.setColorStroke(spc_rgb,
spc_rgb.Tint);

cb.LineWidth = 5f;

cb.circle(150f, 500f, 100f);

cb.stroke();

// Fill
the circle with RGB alternate

cb.setColorFill(spc_rgb,
spc_rgb.Tint);

cb.circle(150f, 500f, 50f);

cb.fill();

//
example with colorfill

cb.setColorFill(spc_g,
spc_g.Tint);

cb.moveTo(100f, 200f);

cb.lineTo(200f, 250f);

cb.lineTo(400f, 150f);

cb.fill();

document.newPage();

String text = "Some text to
show";

document.Add(new Paragraph(text,
FontFactory.getFont(FontFactory.HELVETICA, 24, Font.NORMAL, new SpotColor(spc_cmyk))));

document.Add(new Paragraph(text,
FontFactory.getFont(FontFactory.HELVETICA, 24, Font.NORMAL, new SpotColor(spc_cmyk, 0.5f))));

//
example with template

PdfTemplate t =
cb.createTemplate(500f, 500f);

//
Stroke a rectangle with CMYK alternate

t.ColorStroke = new SpotColor(spc_cmyk, .5f);

t.LineWidth = 10f;

// draw
a rectangle

t.rectangle(100, 10, 100, 100);

// add
the diagonal

t.moveTo(100, 10);

t.lineTo(200, 100);

//
stroke the lines

t.stroke();

// Fill
a rectangle with CMYK alternate

t.setColorFill(spc_g, spc_g.Tint);

t.rectangle(100, 125, 100, 100);

t.fill();

t.beginText();

t.setFontAndSize(bf, 20f);

t.setTextMatrix(1f, 0f, 0f, 1f,
10f, 10f);

t.showText("Template text
upside down");

t.endText();

t.rectangle(0, 0, 499, 499);

t.stroke();

cb.addTemplate(t, -1.0f, 0.00f,
0.00f, -1.0f, 550f, 550f);

}

catch(Exception
de)

{

Console.Error.WriteLine(de.Message);

Console.Error.WriteLine(de.StackTrace);

}

// step 5: we
close the document

document.Close();

}

}

示例代码1013

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap1013

{

public static void
Main(String[] args)

{

Console.WriteLine("Chapter 10
Example 13: Spot Color");

// step 1:
creation of a document-object

Document document = new Document();

try

{

// step
2:

// we
create a writer that listens to the document

// and
directs a PDF-stream to a file

PdfWriter writer =
PdfWriter.getInstance(document, new
FileStream("Chap1013.pdf", FileMode.Create));

BaseFont bf =
BaseFont.createFont("Helvetica", "winansi",
BaseFont.NOT_EMBEDDED);

// step
3: we open the document

document.Open();

// step
4: we add some content

PdfContentByte cb =
writer.DirectContent;

// Note:
I made up these names unless someone give me a PANTONE swatch as gift
([email protected])

PdfSpotColor spc_cmyk = new PdfSpotColor("PANTONE 280 CV", 0.25f, new CMYKColor(0.9f, .2f, .3f, .1f));

PdfSpotColor spc_rgb = new PdfSpotColor("PANTONE 147", 0.9f, new Color(114, 94, 38));

PdfSpotColor spc_g = new PdfSpotColor("PANTONE 100 CV", 0.5f, new GrayColor(0.9f));

//
Stroke a rectangle with CMYK alternate

cb.setColorStroke(spc_cmyk, .5f);

cb.LineWidth = 10f;

// draw
a rectangle

cb.rectangle(100, 700, 100, 100);

// add
the diagonal

cb.moveTo(100, 700);

cb.lineTo(200, 800);

//
stroke the lines

cb.stroke();

// Fill
a rectangle with CMYK alternate

cb.setColorFill(spc_cmyk,
spc_cmyk.Tint);

cb.rectangle(250, 700, 100, 100);

cb.fill();

//
Stroke a circle with RGB alternate

cb.setColorStroke(spc_rgb,
spc_rgb.Tint);

cb.LineWidth = 5f;

cb.circle(150f, 500f, 100f);

cb.stroke();

// Fill
the circle with RGB alternate

cb.setColorFill(spc_rgb,
spc_rgb.Tint);

cb.circle(150f, 500f, 50f);

cb.fill();

//
example with colorfill

cb.setColorFill(spc_g,
spc_g.Tint);

cb.moveTo(100f, 200f);

cb.lineTo(200f, 250f);

cb.lineTo(400f, 150f);

cb.fill();

document.newPage();

String text = "Some text to
show";

document.Add(new Paragraph(text,
FontFactory.getFont(FontFactory.HELVETICA, 24, Font.NORMAL, new SpotColor(spc_cmyk))));

document.Add(new Paragraph(text,
FontFactory.getFont(FontFactory.HELVETICA, 24, Font.NORMAL, new SpotColor(spc_cmyk, 0.5f))));

//
example with template

PdfTemplate t =
cb.createTemplate(500f, 500f);

//
Stroke a rectangle with CMYK alternate

t.ColorStroke = new SpotColor(spc_cmyk, .5f);

t.LineWidth = 10f;

// draw
a rectangle

t.rectangle(100, 10, 100, 100);

// add
the diagonal

t.moveTo(100, 10);

t.lineTo(200, 100);

//
stroke the lines

t.stroke();

// Fill
a rectangle with CMYK alternate

t.setColorFill(spc_g, spc_g.Tint);

t.rectangle(100, 125, 100, 100);

t.fill();

t.beginText();

t.setFontAndSize(bf, 20f);

t.setTextMatrix(1f, 0f, 0f, 1f,
10f, 10f);

t.showText("Template text
upside down");

t.endText();

t.rectangle(0, 0, 499, 499);

t.stroke();

cb.addTemplate(t, -1.0f, 0.00f,
0.00f, -1.0f, 550f, 550f);

}

catch(Exception
de)

{

Console.Error.WriteLine(de.Message);

Console.Error.WriteLine(de.StackTrace);

}

// step 5: we
close the document

document.Close();

}

}


示例代码1014

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap1014

{

public static void
Main(String[] args)

{

Console.WriteLine("Chapter 10
Example 14: colored patterns");

// step 1: creation
of a document-object

Document document = new Document(PageSize.A4, 50, 50, 50, 50);

Document.compress = false;

try

{

// step
2:

// we
create a writer that listens to the document

// and
directs a PDF-stream to a file

PdfWriter writer =
PdfWriter.getInstance(document, new
FileStream("Chap1014.pdf", FileMode.Create));

// step
3: we open the document

document.Open();

// step
4: we add some content

PdfContentByte cb = writer.DirectContent;

PdfTemplate tp =
cb.createTemplate(400, 300);

PdfPatternPainter pat =
cb.createPattern(15, 15, null);

pat.rectangle(5, 5, 5, 5);

pat.fill();

PdfSpotColor spc_cmyk = new PdfSpotColor("PANTONE 280 CV", 0.25f, new CMYKColor(0.9f, .2f, .3f, .1f));

SpotColor spot = new SpotColor(spc_cmyk);

tp.setPatternFill(pat, spot, .9f);

tp.rectangle(0, 0, 400, 300);

tp.fill();

cb.addTemplate(tp, 50, 50);

PdfPatternPainter pat2 =
cb.createPattern(10, 10, null);

pat2.LineWidth = 2;

pat2.moveTo(-5, 0);

pat2.lineTo(10, 15);

pat2.stroke();

pat2.moveTo(0, -5);

pat2.lineTo(15, 10);

pat2.stroke();

cb.LineWidth = 1;

cb.ColorStroke = new Color(System.Drawing.Color.Black);

cb.setPatternFill(pat2, new Color(System.Drawing.Color.Red));

cb.rectangle(100, 400, 30, 210);

cb.fillStroke();

cb.setPatternFill(pat2, new Color(System.Drawing.Color.LightGreen));

cb.rectangle(150, 400, 30, 100);

cb.fillStroke();

cb.setPatternFill(pat2, new Color(System.Drawing.Color.Blue));

cb.rectangle(200, 400, 30, 130);

cb.fillStroke();

cb.setPatternFill(pat2, new GrayColor(0.5f));

cb.rectangle(250, 400, 30, 80);

cb.fillStroke();

cb.setPatternFill(pat2, new GrayColor(0.7f));

cb.rectangle(300, 400, 30, 170);

cb.fillStroke();

cb.setPatternFill(pat2, new GrayColor(0.9f));

cb.rectangle(350, 400, 30, 40);

cb.fillStroke();

}

catch
(Exception de)

{

Console.Error.WriteLine(de.Message);

Console.Error.WriteLine(de.StackTrace);

}

// step 5: we
close the document

document.Close();

}

}


示例代码1015

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap1015

{

public static void
Main(String[] args)

{

Console.WriteLine("Chapter 10
Example 15: Tiled Patterns");

// step 1:
creation of a document-object

Document document = new Document();

try

{

// step
2:

// we
create a writer that listens to the document

// and
directs a PDF-stream to a file

PdfWriter writer =
PdfWriter.getInstance(document, new
FileStream("Chap1015.pdf", FileMode.Create));

// step
3: we open the document

document.Open();

// step
4: we grab the ContentByte and do some stuff with it

PdfContentByte cb =
writer.DirectContent;

BaseFont bf =
BaseFont.createFont("Times-Roman", "winansi", false);

// step
5: we create some PdfPatternPainter instances for drawing path, text, or
placing image

// Image
instance to be placed in PdfPatternPainter canvas. Any nice one?

Image img =
Image.getInstance("pngnow.png");

PdfPatternPainter p =
cb.createPattern(60f, 60f, 60f, 60f);

PdfPatternPainter p1 =
cb.createPattern(60f, 60f, 60f, 60f);

PdfPatternPainter p2 =
cb.createPattern(img.ScaledWidth, img.ScaledHeight, img.ScaledWidth,
img.ScaledHeight);

// step
6: put your drawing instruction in the painter canvas

// A
star pattern taken from Adobe PDF Reference Book p.207

String star = "0.3 g\n15.000
27.000 m\n"

+ "7.947 5.292 l\n26.413
18.708 l\n"

+ "3.587 18.708
l\n22.053 5.292 l\nf\n"

+ "45.000 57.000
m\n37.947 35.292 l\n"

+ "56.413 48.708
l\n33.587 48.708 l\n"

+ "52.053 35.292
l\nf\n"

+ "0.7 g\n15.000 57.000
m\n"

+ "7.947 35.292
l\n26.413 48.708 l\n"

+ "3.587 48.708
l\n22.053 35.292 l\nf\n"

+ "45.000 27.000
m\n37.947 5.292 l\n"

+ "56.413 18.708
l\n33.587 18.708 l\n"

+ "52.053 5.292
l\nf";

p.setLiteral(star);

// A
Pattern with some text drawing

p1.GrayFill = 0.3f;

p1.setFontAndSize(bf, 12);

p1.beginText();

p1.setTextMatrix(1f, 0f, 0f, 1f,
0f, 0f);

p1.showText("A B C D");

p1.endText();

p1.moveTo(0f, 0f);

p1.lineTo(60f, 60f);

p1.stroke();

// A
pattern with an image and position

p2.addImage(img, img.ScaledWidth,
0f, 0f, img.ScaledHeight, 0f, 0f);

p2.setPatternMatrix(1f, 0f, 0f,
1f, 60f, 60f);

// See
if we can apply the pattern color to chunk, phrase or paragraph

PatternColor pat = new PatternColor(p);

PatternColor pat1 = new PatternColor(p1);

PatternColor pat2 = new PatternColor(p2);

String text = "Text with
pattern";

document.Add(new Paragraph(text,
FontFactory.getFont(FontFactory.HELVETICA, 60, Font.BOLD, new GrayColor(0.3f))));

document.Add(new Paragraph(text,
FontFactory.getFont(FontFactory.HELVETICA, 60, Font.BOLD, pat)));

// draw
a rectangle filled with star pattern

cb.setPatternFill(p);

cb.GrayStroke = 0.0f;

cb.rectangle(20, 20, 284, 120);

cb.fillStroke();

// draw
some characters filled with star.

// Note:
A gray, rgb, cmyk or spot color should be applied first

//
otherwise, you will not be able to see the character glyph

// since
the glyph path is filled by pattern

cb.beginText();

cb.setFontAndSize(bf, 1);

cb.setTextMatrix(270f, 0f, 0f,
270f, 20f, 100f);

cb.GrayFill = 0.9f;

cb.showText("ABC");

cb.setPatternFill(p);

cb.moveTextWithLeading(0.0f,
0.0f);

cb.showText("ABC");

cb.endText();

cb.setPatternFill(p);

// draw
a circle. Similar to rectangle

cb.GrayStroke = 0.0f;

cb.circle(150f, 400f, 150f);

cb.fillStroke();

// New
Page to draw text in the pattern painter‘s canvas

document.newPage();

document.Add(new Paragraph(text,
FontFactory.getFont(FontFactory.HELVETICA, 60, Font.BOLD, new GrayColor(0.3f))));

document.Add(new Paragraph(text,
FontFactory.getFont(FontFactory.HELVETICA, 60, Font.BOLD, pat1)));

// draw
a rectangle

cb.setPatternFill(p1);

cb.GrayStroke = 0.0f;

cb.rectangle(0, 0, 284, 120);

cb.fillStroke();

// draw
some characters

cb.beginText();

cb.setFontAndSize(bf, 1);

cb.setTextMatrix(270f, 0f, 0f,
270f, 20f, 100f);

cb.GrayFill = 0.9f;

cb.showText("ABC");

cb.setPatternFill(p1);

cb.moveTextWithLeading(0.0f,
0.0f);

cb.showText("ABC");

cb.endText();

// draw
a circle

cb.setPatternFill(p1);

cb.GrayStroke = 0.0f;

cb.circle(150f, 400f, 150f);

cb.fillStroke();

// New
page to place image in the pattern painter‘s canvas

document.newPage();

document.Add(new Paragraph(text,
FontFactory.getFont(FontFactory.HELVETICA, 60, Font.BOLD, new GrayColor(0.3f))));

document.Add(new Paragraph(text,
FontFactory.getFont(FontFactory.HELVETICA, 60, Font.BOLD, pat2)));

// The
original Image for comparison reason.

// Note:
The width and height is the same as bbox in pattern

cb.addImage(img, img.ScaledWidth,
0f, 0f, img.ScaledHeight, 350f, 400f);

// draw
a rectangle

cb.setPatternFill(p2);

cb.GrayStroke = 0.0f;

cb.rectangle(60, 60, 300, 120);

cb.fillStroke();

// draw
some characters.

// Note:
if the image fills up the pattern, there‘s no need to draw text twice

// since
colors in image will be clipped to character glyph path

cb.beginText();

cb.setFontAndSize(bf, 1);

cb.setTextMatrix(270f, 0f, 0f,
270f, 60f, 120f);

cb.setPatternFill(p2);

cb.showText("ABC");

cb.endText();

// draw
a circle

cb.setPatternFill(p2);

cb.GrayStroke = 0.0f;

cb.circle(150f, 400f, 150f);

cb.fillStroke();

}

catch(Exception
e)

{

Console.Error.WriteLine(e.Message);

Console.Error.WriteLine(e.StackTrace);

}

// finally,
we close the document

document.Close();

}

}


示例代码1101

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap1101

{

public static void Main()

{

Console.WriteLine("Chapter 11
example 1: local goto");

// step 1:
creation of a document-object

Document document = new Document();

try

{

// step
2:

// we
create a writer that listens to the document

// and
directs a PDF-stream to a file

PdfWriter writer =
PdfWriter.getInstance(document, new
FileStream("Chap1101.pdf", FileMode.Create));

// step
3: we open the document

document.Open();

// step
4: we add some content

Paragraph
p1 = new Paragraph("We will do something
special with this paragraph. If you click on ",
FontFactory.getFont(FontFactory.HELVETICA, 12));

p1.Add(new
Chunk("this word", FontFactory.getFont(FontFactory.HELVETICA, 12,
Font.NORMAL, new Color(0, 0,
255))).setLocalGoto("test"));

p1.Add(" you will
automatically jump to another location in this document.");

Paragraph p2 = new Paragraph("blah, blah, blah");

Paragraph p3 = new Paragraph("This paragraph contains a local
");

p3.Add(new
Chunk("local destination", FontFactory.getFont(FontFactory.HELVETICA,
12, Font.NORMAL, new Color(0, 255,
0))).setLocalDestination("test"));

document.Add(p1);

document.Add(p2);

document.Add(p2);

document.Add(p2);

document.Add(p2);

document.Add(p2);

document.Add(p2);

document.Add(p2);

document.Add(p3);

}

catch(DocumentException
de)

{

Console.Error.WriteLine(de.Message);

}

catch(IOException
ioe)

{

Console.Error.WriteLine(ioe.Message);

}

// step 5: we
close the document

document.Close();

}

}


示例代码1102

using System;

using System.IO;

using iTextSharp.text;

using iTextSharp.text.pdf;

public class Chap1102

{

public static void Main()

{

Console.WriteLine("Chapter 11
example 2: anchor and remote goto");

// step 1:
creation of a document-object

Document document = new Document();

try

{

// step
2:

// we
create a writer that listens to the document

// and
directs a PDF-stream to a file

PdfWriter writerA =
PdfWriter.getInstance(document, new
FileStream("Chap1102a.pdf", FileMode.Create));

PdfWriter writerB =
PdfWriter.getInstance(document, new
FileStream("Chap1102b.pdf", FileMode.Create));

// step
3: we open the document

document.Open();

// step
4: we add some content

Paragraph p1 = new Paragraph("We discussed anchors in chapter
3, but you can add an URL to a chunk to to make it an ",
FontFactory.getFont(FontFactory.HELVETICA, 12));

p1.Add(new
Chunk("anchor", FontFactory.getFont(FontFactory.HELVETICA, 12,
Font.UNDERLINE, new Color(0, 0,
255))).setAnchor(new
Uri("http://iTextSharp.sourceforge.net")));

p1.Add(" you will
automatically jump to another location in this document.");

Paragraph p2 = new Paragraph("blah, blah, blah");

Paragraph p3a = new Paragraph("This paragraph contains a
");

p3a.Add(new
Chunk("local destination in document A",
FontFactory.getFont(FontFactory.HELVETICA, 12, Font.NORMAL, new Color(0, 255, 0))).setLocalDestination("test"));

Paragraph p3b = new Paragraph("This paragraph contains a local
");

p3b.Add(new
Chunk("local destination in document B",
FontFactory.getFont(FontFactory.HELVETICA, 12, Font.NORMAL, new Color(0, 255,
0))).setLocalDestination("test"));

Paragraph p4a = new Paragraph(new
Chunk("Click this paragraph to go to a certain destination on document
B").setRemoteGoto("Chap1102b.pdf", "test"));

Paragraph p4b = new Paragraph(new
Chunk("Click this paragraph to go to a certain destination on document
A").setRemoteGoto("Chap1102a.pdf", "test"));

Paragraph p5a = new Paragraph("you can also jump to a ");

p5a.Add(new
Chunk("specific page on another document",
FontFactory.getFont(FontFactory.HELVETICA, 12,
Font.ITALIC)).setRemoteGoto("Chap1102b.pdf", 3));

document.Add(p1);

document.Add(p2);

document.Add(p2);

document.Add(p2);

document.Add(p2);

document.Add(p2);

document.Add(p2);

document.Add(p2);

writerA.Pause();

document.Add(p4b);

writerA.resume();

writerB.Pause();

document.Add(p4a);

document.Add(p5a);

writerB.resume();

document.Add(p2);

document.Add(p2);

document.Add(p2);

document.Add(p2);

writerA.Pause();

document.Add(p3b);

document.Add(p2);

document.Add(p2);

document.newPage();

document.Add(p2);

document.Add(p2);

document.newPage();

writerA.resume();

writerB.Pause();

document.Add(p3a);

writerB.resume();

document.Add(p2);

document.Add(p2);

}

catch(DocumentException
de)

{

Console.Error.WriteLine(de.Message);

}

catch(IOException
ioe)

{

Console.Error.WriteLine(ioe.Message);

}

catch(Exception
e)

{

Console.Error.WriteLine(e.Message);

}

// step 5: we
close the document

document.Close();

}

}

时间: 2024-10-11 03:42:20

ItextSharp代码示例的相关文章

计算DXFReader中多边形的面积代码示例

在DXFReader中, 一般的多边形的面积计算绝对值 其中K表是顶点的数目,它们的坐标,用于在求和和, 所以用下面的代码就可以计算出一个封闭的多段线的区域: view source print? 01 Dim Vertex As Object 02 Dim Entity As Object 03 Dim k As Long 04 Dim i As Long 05 Dim Area As Single 06 07 With DXFReader1 08 09  For Each Entity In

代码示例:一些简单技巧优化JavaScript编译器工作详解,让你写出高性能运行的更快JavaScript代码

告诉你一些简单的技巧来优化JavaScript编译器工作,从而让你的JavaScript代码运行的更快.尤其是在你游戏中发现帧率下降或是当垃圾回收器有大量的工作要完成的时候. 单一同态: 当你定义了一个两个参数的函数,编译器会接受你的定义,如果函数参数的类型.个数或者返回值的类型改变编译器的工作会变得艰难.通常情况下,单一同态的数据结构和个数相同的参数会让你的程序会更好的工作. function example(a, b) { // 期望a,b都为数值类型 console.log(++a * +

jquery操作单选钮代码示例

jquery操作单选钮代码示例:radio单选按钮是最重要的表单元素之一,下面介绍一下常用的几个jquery对radio单选按钮操作.一.取消选中: $(".theclass").each(function(){ if($(this).attr('checked')) { $(this).attr('checked',false); } }); 以上代码可以将class属性值为theclass的被选中单选按钮取消选中.二.获取被选中的单选按钮的值: var val=$('.thecla

Python实现各种排序算法的代码示例总结

Python实现各种排序算法的代码示例总结 作者:Donald Knuth 字体:[增加 减小] 类型:转载 时间:2015-12-11我要评论 这篇文章主要介绍了Python实现各种排序算法的代码示例总结,其实Python是非常好的算法入门学习时的配套高级语言,需要的朋友可以参考下 在Python实践中,我们往往遇到排序问题,比如在对搜索结果打分的排序(没有排序就没有Google等搜索引擎的存在),当然,这样的例子数不胜数.<数据结构>也会花大量篇幅讲解排序.之前一段时间,由于需要,我复习了

领域驱动开发推荐代码示例 — Microsoft NLayerApp

简介: Microsoft NLayerApp是由微软西班牙团队出品的基于.NET 4.0的“面向领域N层分布式架构”代码示例,在codeplex上的地址是:http://microsoftnlayerapp.codeplex.com/. 架构图: 点击查看大图 代码下载:http://microsoftnlayerapp.codeplex.com/releases/view/56660 所用到的软件: - Microsoft Visual Studio 2010  - Microsoft Ex

Aspectj快速上手代码示例之Before,After,Around

本文不打算解释AOP的相关专业名词和概念,仅通过几个代码示例来展示Aspectj(对AOP实现的)的基本使用,并且使用的Aspectj是目前最新版本. 1.搭建环境 本文使用Maven来构建工程,通过aspectj-maven-plugin插件来编译*.aj文件至.class. Maven的具体配置: <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>aspectj-maven-plugin&

jxl创建Excel文件java代码示例

记得要下载 并 导入 jxl.jar 包,免积分下载地址:http://download.csdn.net/detail/u010011052/7561041 package Test; import java.io.*; import jxl.*; import jxl.format.Colour; import jxl.write.*; public class JXLTest { private static WritableWorkbook book; private static Wr

java 翻盖hashCode()深入探讨 代码示例

package org.rui.collection2.hashcode; /** * 覆盖hashcode * 设计HashCode时最重要的因素 就是:无论何时,对同一个对象调用HashCode都应该产生同样的值, * 如果你的HashCode方法依赖于对象中易变的数据,用户就要当心了,因为此数据发生变化 时 * HashCode就会生成一个不同的散列码,相当于产生一个不同的健 * 此外 也不应该使HashCode依赖于具有唯一性的对象信息,尤其是使用this的值,这只能很糟糕, * 因为这

python 之初学者的代码示例(短小精悍)(一)

学习Python也有个把月了,最近整理自己初学的代码示例,一个是为了增加自己对细节的把握,一个是让像我一样的初学者能够熟练地使用基础,基础的重要性就不说了,我希望自己能够把这些精巧的小而短的示例分享给大家,共同进步 #help(execfile) Help on built-in function execfile in module __builtin__: execfile(...) execfile(filename[, globals[, locals]]) Read and execu