|
iText In Action: Creating & Manipulating PDF
How to
* Serve PDF to a browser
* Generate dynamic documents from XML files or databases
* Use PDF's many interactive features
* Add bookmarks, page numbers, watermarks, etc.
* Split, concatenate, and
manipulate PDF pages
* Automate filling out of PDF forms
* Add digital signatures to a PDF file
* And much more
preface xix
acknowledgments xxi
about this book xxiii Part 1 Introduction 1
1 iText: when and why 3
1.1 The history of iText 5
1.2 iText: first contact 10
1.3 An almost-true story 14
1.4 Summary 29
2 PDF engine jump-start 30
2.1 Generating a PDF document in five steps 31
2.2 Manipulating existing PDF files 48
2.3 Creating PDF in multiple passes 68
2.4 Summary 72
3 PDF: why and when 73
3.1 A document history 74
3.2 Types of PDF 79
3.3 PDF version history 85
3.4 Summary 95
Part 2 Basic building blocks 97
4 Composing text elements 99
4.1 Wrapping Strings in text elements 100
4.2 Adding extra functionality to text elements 105
4.3 Chunk characteristics 111
4.4 Chunks and space distribution 118
4.5 Anchors revisited 122
4.6 Generic Chunk functionality 125
4.7 Making a flyer (part 1) 129
4.8 Summary 134
5 Inserting images 135
5.1 Standard image types 136
5.2 Working with java.awt.Image 140
5.3 Byte arrays with image data 143
5.4 Setting image properties 147
5.5 Making a flyer (part 2) 158
5.6 Summary 161
6 Constructing tables 162
6.1 Tables in PDF: PdfPTable 163
6.2 Alternatives to PdfPTable 186
6.3 Composing a study guide (part 1) 189
6.4 Summary 192
7 Constructing columns 193
7.1 Retrieving the current vertical position 194
7.2 Adding text to ColumnText 197
7.3 Composing ColumnText with other building blocks 206
7.4 Automatic columns with MultiColumnText 211
7.5 Composing a study guide (part 2) 216
7.6 Summary 219
Part 3 PDF text and graphics 221
8 Choosing the right font 223
8.1 Defining a font 224
8.2 Introducing base fonts 231
8.3 Composite fonts 248
8.4 Summary 255
9 Using fonts 257
9.1 Other writing directions 258
9.2 Sending a message of peace (part 1) 262
9.3 Advanced typography 264
9.4 Automating font creation and selection 271
9.5 Sending a message of peace (part 2) 279
9.6 Summary 282
10 Constructing and painting paths 283
10.1 Path construction and painting operators 284
10.2 Working with iTexts direct content 294
10.3 Graphics state operators 303
10.4 Changing the coordinate system 313
10.5 Drawing a map of a city (part 1) 321
10.6 Summary 324
11 Adding color and text 325
11.1 Adding color to PDF files 326
11.2 The transparent imaging model 335
11.3 Clipping content 341
11.4 PDFs text state 344
11.5 The map of Foobar (part 2) 353
11.6 Summary 355
12 Drawing to Java Graphics2D 356
12.1 Obtaining a Java.awt.Graphics2D instance 357
12.2 Two-dimensional graphics in the real world 368
12.3 PDFs optional content 374
12.4 Enhancing the map of Foobar 385
12.5 Summary 392
Part 4 Interactive PDF 393
13 Browsing a PDF document 395
13.1 Changing viewer preferences 396
13.2 Visualizing thumbnails 401
13.3 Adding page transitions 405
13.4 Adding bookmarks 407
13.5 Introducing actions 415
13.6 Enhancing the course catalog 421
13.7 Summary 424
14 Automating PDF creation 425
14.1 Creating a page 426
14.2 Common page event functionality 432
14.3 Alternative XML solutions 445
14.4 Enhancing the course catalog (part 2) 461
14.5 Summary 463
15 Creating annotations and fields 464
15.1 Introducing annotations 465
15.2 Creating an AcroForm 475
15.3 Submitting a form 488
15.4 Comparing HTML and PDF forms 498
15.5 Summary 500
16 Filling and signing AcroForms 501
16.1 Filling in the fields of an AcroForm 502
16.2 Working with FDF and XFDF files 514
16.3 Signing a PDF file 518
16.4 Verifying a PDF file 529
16.5 Summary 532
17 iText in web applications 533
17.1 Writing PDF to the ServletOutputStream: pitfalls 534
17.2 Putting the theory into practice 550
17.3 Summary 561
18 Under the hood 562
18.1 Inside iText and PDF 563
18.2 Extracting and editing text 574
18.3 Rendering PDF 581
18.4 Manipulating PDF files 584
18.5 Summary 590
appendix A: Class diagrams 591
appendix B: Creating barcodes 602
appendix C: Open parameters 618
appendix D: Signing a PDF with a smart card 621
appendix E: Dealing with exceptions 624
appendix F: Pdf/X, Pdf/A, and tagged PDF 630
appendix G: Resources 638
index 642
|