Muutke küpsiste eelistusi

iText in Action: Creating and Manipulating PDF [Pehme köide]

(Uuem väljaanne: 9781935182610)
  • Formaat: Paperback / softback, 688 pages, kõrgus x laius x paksus: 234x184x35 mm, kaal: 1150 g, Illustrations
  • Ilmumisaeg: 14-Dec-2006
  • Kirjastus: Manning Publications
  • ISBN-10: 1932394796
  • ISBN-13: 9781932394795 (Uuem väljaanne: 9781935182610)
Teised raamatud teemal:
  • Pehme köide
  • Hind: 58,59 €*
  • * saadame teile pakkumise kasutatud raamatule, mille hind võib erineda kodulehel olevast hinnast
  • See raamat on trükist otsas, kuid me saadame teile pakkumise kasutatud raamatule.
  • Kogus:
  • Lisa ostukorvi
  • Tasuta tarne
  • Lisa soovinimekirja
  • Formaat: Paperback / softback, 688 pages, kõrgus x laius x paksus: 234x184x35 mm, kaal: 1150 g, Illustrations
  • Ilmumisaeg: 14-Dec-2006
  • Kirjastus: Manning Publications
  • ISBN-10: 1932394796
  • ISBN-13: 9781932394795 (Uuem väljaanne: 9781935182610)
Teised raamatud teemal:
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.

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.



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