iText in Action: Creating and Manipulating PDF
Imagine a publisher who wants to "stamp" his ebooks on the fly with the name of the buyer (to discourage sharing). Such a publisher would (and we know one who does) use iText for the task. Developers looking to enhance web- and other applications with dynamic PDF document generation and/or manipulation will find this book unique in content and readability. Based on ongoing examples that encourage learning "in action," they will finally understand PDF and learn how to build applications that produce professional, high-quality PDF documents. While the basic functionality of iText is easy to acquire, iText in Action lowers the learning curve for more advanced functionality. It explains how to use iText to create/manipulate PDF documents on-the-fly in one or more of the following situations:
  • Due to time or size, the PDF documents can't be produced manually
  • The content of the document must be calculated or based on user input.
  • The content needs to be customized or personalized.
  • The PDF content needs to be served in a web environment.
  • Documents are to be created in "batch process" mode.
    All the examples are written in Java, but they can be easily adapted to .NET by developers using one of the .NET ports: iTextSharp (C#) or iText.NET (#J). While iText is a free Java library and the examples are written from the point of view of the Java developer, nine out of ten examples can be run by .NET developers with only minimal changes.

    Purchase of the print book comes with an offer of a free PDF, ePub, and Kindle eBook from Manning. Also available is all code from the book.
  • 1008017904
    iText in Action: Creating and Manipulating PDF
    Imagine a publisher who wants to "stamp" his ebooks on the fly with the name of the buyer (to discourage sharing). Such a publisher would (and we know one who does) use iText for the task. Developers looking to enhance web- and other applications with dynamic PDF document generation and/or manipulation will find this book unique in content and readability. Based on ongoing examples that encourage learning "in action," they will finally understand PDF and learn how to build applications that produce professional, high-quality PDF documents. While the basic functionality of iText is easy to acquire, iText in Action lowers the learning curve for more advanced functionality. It explains how to use iText to create/manipulate PDF documents on-the-fly in one or more of the following situations:
  • Due to time or size, the PDF documents can't be produced manually
  • The content of the document must be calculated or based on user input.
  • The content needs to be customized or personalized.
  • The PDF content needs to be served in a web environment.
  • Documents are to be created in "batch process" mode.
    All the examples are written in Java, but they can be easily adapted to .NET by developers using one of the .NET ports: iTextSharp (C#) or iText.NET (#J). While iText is a free Java library and the examples are written from the point of view of the Java developer, nine out of ten examples can be run by .NET developers with only minimal changes.

    Purchase of the print book comes with an offer of a free PDF, ePub, and Kindle eBook from Manning. Also available is all code from the book.
  • 49.99 In Stock
    iText in Action: Creating and Manipulating PDF

    iText in Action: Creating and Manipulating PDF

    by Bruno Lowagie
    iText in Action: Creating and Manipulating PDF

    iText in Action: Creating and Manipulating PDF

    by Bruno Lowagie

    Paperback(1st Edition)

    $49.99 
    • SHIP THIS ITEM
      In stock. Ships in 6-10 days.
    • PICK UP IN STORE

      Your local store may have stock of this item.

    Related collections and offers


    Overview

    Imagine a publisher who wants to "stamp" his ebooks on the fly with the name of the buyer (to discourage sharing). Such a publisher would (and we know one who does) use iText for the task. Developers looking to enhance web- and other applications with dynamic PDF document generation and/or manipulation will find this book unique in content and readability. Based on ongoing examples that encourage learning "in action," they will finally understand PDF and learn how to build applications that produce professional, high-quality PDF documents. While the basic functionality of iText is easy to acquire, iText in Action lowers the learning curve for more advanced functionality. It explains how to use iText to create/manipulate PDF documents on-the-fly in one or more of the following situations:
  • Due to time or size, the PDF documents can't be produced manually
  • The content of the document must be calculated or based on user input.
  • The content needs to be customized or personalized.
  • The PDF content needs to be served in a web environment.
  • Documents are to be created in "batch process" mode.
    All the examples are written in Java, but they can be easily adapted to .NET by developers using one of the .NET ports: iTextSharp (C#) or iText.NET (#J). While iText is a free Java library and the examples are written from the point of view of the Java developer, nine out of ten examples can be run by .NET developers with only minimal changes.

    Purchase of the print book comes with an offer of a free PDF, ePub, and Kindle eBook from Manning. Also available is all code from the book.

  • Product Details

    ISBN-13: 9781932394795
    Publisher: Manning
    Publication date: 12/18/2006
    Edition description: 1st Edition
    Pages: 656
    Product dimensions: 7.38(w) x 9.25(h) x 1.50(d)

    About the Author

    Bruno Lowagie is the original developer and current maintainer of iText. He works for Ghent University and lives in Ghent, Belgium, with his wife and two sons.

    Table of Contents


    Preface     xix
    Acknowledgments     xxi
    About this book     xxiii
    Introduction     1
    iText: when and why     3
    The history of iText     5
    How iText was born     5
    iText today     7
    Beyond Java     9
    iText: first contact     10
    Running the examples in the book     11
    Experimenting with the iText toolbox     12
    An almost-true story     14
    Some Foobar fiction     15
    A document daydream     16
    Welcoming the student     18
    Producing and processing interactive documents     23
    Making the dream come true     28
    Summary     29
    PDF engine jump-start     30
    Generating a PDF document in five steps     31
    Creating a new document object     32
    Getting a DocWriter instance     35
    Opening the document     37
    Adding content     42
    Closing the document     46
    Manipulating existing PDF files     48
    Reading an existing PDF file     49
    Using PdfStamper to change document properties     54
    Using PdfStamper toadd content     55
    Introducing imported pages     60
    Using imported pages with PdfWriter     61
    Manipulating existing PDF files with PdfCopy     64
    Concatenating forms with PdfCopyFields     66
    Summary of the manipulation classes     67
    Creating PDF in multiple passes     68
    Stamp first, then copy     69
    Copy first, then stamp     70
    Stamp, copy, stamp     71
    Summary     72
    PDF: why and when     73
    A document history     74
    Adobe and documents     75
    The Acrobat family     77
    The intellectual property of the PDF specification     78
    Types of PDF     79
    Traditional PDF     80
    Tagged PDF     80
    Linearized PDF     81
    PDFs preserving native editing capabilities     81
    PDF types that became an ISO standard     81
    PDF forms, FDF, and XFDF     83
    XFA and XDP     84
    Rules of thumb     84
    PDF version history     85
    Changing the user unit     86
    PDF content and compression     88
    Encryption     90
    Summary      95
    Basic Building Blocks     97
    Composing text elements     99
    Wrapping Strings in text elements     100
    The atomic building block: com.lowagie.text.Chunk     101
    An Array List of Chunks: com.lowagie.text.Phrase     103
    A sequence of Phrases: com.lowagie.text.Paragraph     104
    Adding extra functionality to text elements     105
    External and internal links: com.lowagie.text.Anchor     106
    Lists and ListItems: com.lowagie.text.List/ListItem     107
    Automatic bookmarking: com.lowagie.text. Chapter/Section     109
    Chunk characteristics     111
    Measuring and scaling     111
    Lines: underlining and striking through text     112
    TextRise: sub- and superscript     115
    Simulating italic fonts: skewing text     116
    Changing font and background colors     117
    Simulating bold fonts: stroking vs. filling     117
    Chunks and space distribution     118
    The split character     119
    Hyphenation     120
    Changing the Char Space ratio     121
    Anchors revisited     122
    Remote Goto     123
    Local Goto     124
    Generic Chunk functionality     125
    Drawing custom backgrounds and lines     125
    Implementing custom functionality     126
    Building an index     127
    Making a flyer (part 1)     129
    Summary     134
    Inserting images     135
    Standard image types     136
    BMP, EPS, GIF, JPEG, PNG, TIFF, and WMF     137
    TIFF with multiple pages     139
    Animated GIFs     139
    Working with java.awt.Image     140
    Byte arrays with image data     143
    Raw image data     144
    CCITT compressed images     145
    Creating barcodes     146
    Working with com.lowagie.text.pdf.PdfTemplate     147
    Setting image properties     147
    Adding images to the document     147
    Translating, scaling, and rotating images     151
    Image masks     156
    Making a flyer (part 2)     158
    Getting the Image instance     158
    Setting the border, the alignment, and the dimensions     159
    The resulting PDF     160
    Summary     161
    Constructing tables     162
    Tables in PDF: PdfPTable     163
    Your first PdfPTable     163
    Changing the width and alignment of a PdfPTable     164
    Adding PdfPCells to a PdfPTable     167
    Special PdfPCell constructors     176
    Working with large tables     178
    Adding a PdfPTable at an absolute position     182
    Alternatives to PdfPTable     186
    Composing a study guide (part 1)     189
    The data source     189
    Generating the PDF     190
    Summary     192
    Constructing columns     193
    Retrieving the current vertical position     194
    Adding text to ColumnText     197
    Different ways to add text to a column     197
    Keeping paragraphs together     199
    Adding more than one column to a page     201
    Composing ColumnText with other building blocks     206
    Combining text mode with images and tables     207
    ColumnText in composite mode     209
    Automatic columns with MultiColumnText     211
    Regular columns with MultiColumnText     211
    Irregular columns with MultiColumnText     213
    Composing a study guide (part 2)     216
    Summary     219
    PDF Text and Graphics     221
    Choosing the right font     223
    Defining a font     224
    Using the right terminology     225
    Standard Type 1 fonts     226
    Introducing base fonts     231
    Working with an encoding     232
    Class BaseFont and Type 1 fonts     233
    Embedding Type 3 fonts     238
    Working with TrueType fonts     239
    Working with OpenType fonts     243
    Composite fonts     248
    What is Unicode?     248
    Introducing Chinese, Japanese, Korean (CJK) fonts     251
    Embedding CIDFonts     252
    Using TrueType collections     254
    Summary     255
    Using fonts     257
    Other writing directions     258
    Vertical writing     258
    Writing from right to left     260
    Sending a message of peace (part 1)     262
    Advanced typography     264
    Handling diacritics     265
    Dealing with ligatures     268
    Automating font creation and selection     271
    Getting a Font object from the FontFactory     271
    Automatic font selection     276
    Sending a message of peace (part 2)     279
    Summary      282
    Constructing and painting paths     283
    Path construction and painting operators     284
    Seven path construction operators     284
    Path-painting operators     286
    Working with iText's direct content     294
    Direct content layers     295
    PdfPTable and PdfPCell events     296
    Graphics state operators     303
    The graphics state stack     303
    Changing the characteristics of a line     305
    Changing the coordinate system     313
    The CTM     313
    Positioning external objects     316
    Drawing a map of a city (part 1)     321
    The XML/SVG source file     321
    Parsing the SVG file     323
    Summary     324
    Adding color and text     325
    Adding color to PDF files     326
    Device colorspaces     326
    Separation colorspaces     328
    Painting patterns     329
    Using color with basic building blocks     334
    The transparent imaging model     335
    Transparency groups     336
    Isolation and knockout     338
    Applying a soft mask to an image     340
    Clipping content     341
    PDF's text state     344
    Text objects     344
    Convenience methods to position and show text     350
    The map of Foobar (part 2)     353
    Summary     355
    Drawing to Java Graphics2D     356
    Obtaining a Java.awt.Graphics2D instance     357
    A simple example from Sun's tutorial     358
    Mapping AWT fonts to PDF fonts     362
    Drawing glyph shapes instead of using a PDF font     365
    Two-dimensional graphics in the real world     368
    Exporting Swing components to PDF     368
    Drawing charts with JFreeChart     371
    PDF's optional content     374
    Making content visible or invisible     374
    Adding structure to layers     375
    Using a PdfLayer     378
    Optional content membership     380
    Changing the state of a layer with an action     382
    Optional content in XObjects and annotations     384
    Enhancing the map of Foobar     385
    Defining the layers for the map and the street names     386
    Combining iText and Apache Batik     388
    Adding tourist information to the map     389
    Summary      392
    Interactive PDF     393
    Browsing a PDF document     395
    Changing viewer preferences     396
    Setting the page layout     397
    Choosing the page mode     398
    Viewer options     399
    Visualizing thumbnails     401
    Changing the page labels     402
    Changing the thumbnail image     404
    Adding page transitions     405
    Adding bookmarks     407
    Creating destinations     407
    Constructing an outline tree     409
    Adding actions to an outline tree     410
    Retrieving bookmarks from an existing PDF file     411
    Manipulating bookmarks in existing PDF files     413
    Introducing actions     415
    Actions to go to an internal destination     415
    Actions to go to an external destination     417
    Triggering actions from events     418
    Adding JavaScript to a PDF document     420
    Launching an application     420
    Enhancing the course catalog     421
    Summary     424
    Automating PDF creation     425
    Creating a page     426
    Adding empty pages     426
    Defining page boundaries      427
    Reordering pages     431
    Common page event functionality     432
    Overview of the PdfPageEvent methods     432
    Adding a header and a footer     433
    Adding page X of Y     435
    Adding watermarks     438
    Creating an automatic slide show     440
    Automatically creating bookmarks     442
    Automatically creating a table of contents     443
    Alternative XML solutions     445
    Writing a letter on company stationery     445
    Parsing a play     451
    Parsing (X)HTML     456
    Using HtmlWorker to parse HTML snippets     458
    Enhancing the course catalog (part 2)     461
    Summary     463
    Creating annotations and fields     464
    Introducing annotations     465
    Simple annotations     465
    Other types of annotations     470
    Adding annotations to a chunk or image     474
    Creating an AcroForm     475
    Button fields     476
    Creating text fields     482
    Creating choice fields     486
    Submitting a form     488
    Choosing field names     488
    Adding actions to the pushbuttons     491
    Adding actions     496
    Comparing HTML and PDF forms     498
    Summary     500
    Filling and signing AcroForms     501
    Filling in the fields of an AcroForm     502
    Retrieving information about the fields (part 1)     503
    Filling fields     505
    Retrieving information from a field (part 2)     508
    Flattening a PDF file     510
    Optimizing the flattening process     511
    Working with FDF and XFDF files     514
    Reading and writing FDFfiles     514
    Reading XFDF files     517
    Signing a PDF file     518
    Adding a signature field to a PDF file     518
    Using public and private keys     520
    Generating keys and certificates     521
    Signing a document     523
    Verifying a PDF file     529
    Summary     532
    iText in web applications     533
    Writing PDF to the ServletOutputStream: pitfalls     534
    Solving problems related to content type-related problems     536
    Troubleshooting the blank-page problem     537
    Problems with PDF generated from JSP     542
    Avoiding multiple hits per PDF      543
    Workaround for the timeout problem     545
    Putting the theory into practice     550
    A personalized course catalog     550
    Creating a learning agreement form     553
    Reading an FDF file in a JSP page     559
    Summary     561
    Under the hood     562
    Inside iText and PDF     563
    Factors of success     563
    The file structure of a PDF document     564
    Basic PDF objects     569
    Climbing up the object tree     570
    Extracting and editing text     574
    Reading a page's content stream     574
    Why iText doesn't do text extraction     576
    Why you shouldn't use PDF as a format for editing     578
    Rendering PDF     581
    How to print a PDF file programmatically     581
    Printing a PDF file in a web application     583
    Manipulating PDF files     584
    Toolbox tools     585
    The learning agreement (revisited)     587
    Summary     590
    Class diagrams     591
    Creating barcodes     602
    Open parameters     618
    Signing a PDF with a smart card     621
    Dealing with exceptions     624
    Pdf/X, Pdf/A and tagged PDF     630
    Resources     638
    Index     642
    From the B&N Reads Blog

    Customer Reviews