iText

iText is a Java and C# library that allows you to create and manipulate PDF documents. It enables developers looking to enhance web- and other applications with dynamic PDF document generation and/or manipulation.

Developers can use iText 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.

The iText library is free software; you can redistribute it and/or modify it under the terms of the GNU Affero General Public License version 3. However, a commercial license is also available.