iText 是 Java 中用於建立和操作 PDF 檔案的開源庫。它是由 Bruno Lowagie、Paulo Soares 等人編寫的。報告稱 2001 年以來，26 個不同的貢獻者進行了 1 萬多次提交，超過 100 多萬行程式碼。iText 具有一個由大型開發團隊維護的完善的、成熟的、活躍度同比持平的程式碼庫。利用 COCOMO 模型，花了大約 250 的努力後，2000 年 11 月 iText 專案開始了第一次提交。 500 版（2009 年 12 月 7 日釋出）後的 iText 是在 Affero 通用公共許可證第 3 版下分發的。之前版本的 iText（Java 版的至 421 版，和 C 版的至 416 版）是在 Mozilla 公共許可證或 LGPL 下分發的。iText 同時由 iText 軟體公司透過一個專有許可證進行分發。iText 是 1T3XT BVBA 的註冊商標 iText 已經以 iTextSharp 的名義移植到NET Framework 下。iTextSharp 是用 C 編寫的，它有一個獨立於 iText 的程式碼庫，但與 iText 的版本同步。 在 2013 年中，iText（Java）和 iTextSharp（NET）僅在 SourceForge 就有超過 500 萬次的下載量。2013 年 10 月，iText 在 SourceForge 上每週約有 3000 次下載，而 iTextSharp 每週約有 4000 次下載。 特性 開發者可以用 iText 來： 從 XML 檔案或資料庫來動態生成 PDF 文件 為瀏覽器生成 PDF 文件 利用 PDF 的許多互動功能 新增書籤、頁碼、水印、條形碼等 分割、拼接和處理 PDF 頁面 自動填寫 PDF 表單 給 PDF 檔案新增數字簽名 通常情況下，在具有下列情況之一的專案中會使用 iText： 內容不是提前準備好的：它基於使用者輸入或資料庫的即時資訊來計算、處理。 內容太多，PDF 檔案無法手動生成。 在批處理過程中，文件需要在無人值守模式下建立。 需要對內容進行定製或個性化。例如，終端使用者的名字需要被印在多個頁面上。 支援的 ISO 標準 ISO 320001 PDF 17 ISO 19005 PDFA ISO 14289 PDFUA iText bringing PDFUA support to Java Implementations by Duff Johnson 歷史 1998 年冬天，Bruno Lowagie 在根特大學的一個內部專案開發了一個 PDF 庫 rugPdf，用來建立一個 PDF 文件應用（針對學生管理用）。rugPdf 是一個非常小、很複雜庫，實現的功能很少，例如簡單的讀取和寫入 PDF 檔案。為了利用這個庫，開發者必須瞭解 PDF 語法、物件、運算子和運算元。 1999 年，Lowagie 拋棄了 rugPdf 的程式碼，從頭開始寫了一個新的庫 iText。Lowagie 建立 iText，意圖使 Java 開發者在不瞭解 PDF 語法的情況下也可以使用這個庫建立 PDF 文件，並在 2000 年 2 月 14 日將其作為自由及開放原始碼軟體釋出。在 2000 年的夏天，Paulo Soares 加盟了這個專案，現在他已經是 iText 新功能的主要開發者之一。 2007 年，《SOA World》（SOA 世界）雜誌將 iText 作為企業應該使用的 10 種開源解決方案之一。詹姆斯高斯林稱讚 iText 庫，並在 Huckster 的新版本使用。紐約時報還利用 iText 來建立其公共領域文章的 PDF 版本。 iText 被嵌入在許多產品和服務中，包括 Eclipse BIRT、Jasper Reports、、、pdftk 等等。 2008 年末，iText 的專有許可證可用；2009 年初，iText 軟體公司成立，成為 iText 產品的全球許可方。 2013 年，德勤提名 iText 軟體集團為比荷盧聯盟高科技、高成長 50 強。該公司在比荷盧聯盟中排名第 10 位，在比利時中排名第 3 位。 許可證和復刻 iTextSharp 416iText 420 之前的版本是在 MPL 和 LGPL 許可證下分發的，允許使用者在閉源軟體專案中使用。2009 年底，iText 第 5 版釋出，其許可證被更換為 Affero 通用公共許可證第 3 版。 那些不願意提供其原始碼的專案，可以購買 iText 第 5 版的商業許可，或沒有任何變化的繼續使用 iText 的以前版本（其許可證更寬鬆）。Talk about the A GPL by Ywein Van den Brande IP lawyer and technologist 然而，開發商 Bruno Lowagie 警告說，第 5 版之前的版本可能包含非 LGPL 授權的程式碼，因而以前版本的閉源專案的使用者可能需要為侵犯版權負責。雖然 AGPL 庫可以連結到 GPL 的程式，但 AGPL 許可證與 GPL 許可證不相容。 示例 下面的原始碼生成一個 PDF 檔案，作為一個 Hello World 的例子。 import javaioFileOutputStream import comitextpdftextDocument import comitextpdftextParagraph import comitextpdftextpdfPdfWriter public class ITextHelloWorld public static void main String args try Document document new Document PdfWritergetInstance document new FileOutputStream HelloWorldpdf documentopen documentadd new Paragraph Hello World documentclose catch Exception e Systemoutprintln e 延展閱讀 Review first edition on JFreeorg by David Gilbert Review first edition on JavaLobby by Stephen Kitt Review second edition in Freies Magazin by Michael Niedermair PDF Generation Made Easy by Benoy Jose Tools of the Trade Part 1 Creating PDF documents with iText by Jeff Friesen Adobe Press Dynamically Creating PDFs in a Web Application by Sean C Sullivan Creating PDFs with iText by Christoph Bartneck Generate PDF files from Java applications dynamically by Amit Tuli Staff Software Engineer IBM Create PDF With iText Java Tutorial Itext Add Insert Image Into PDF Chapters 10 11 and 12 are dedicated entirely to iText see section Generating PDF with iText starting on p705 translated into Italian Acrobat e PDF Trucchi e segreti 參見 PDF 軟體列表 參考文獻 外部連結 iText 主頁 SourceForge 上的 iText SourceForge 上的 iTextSharp StackOverflow 上的 iText StackOverflow 上的 iTextSharp 用來諮詢與 IText 有關問題的支援論壇 用 IText 建立 PDF 檔案的第三方指南 用 IText 合併 PDF 檔案的第三方指南 2012 年 IText 峰會上講解 Android、PDF、HTML5 的影片片段 Adobe 的 PDF 架構師 Leonard Rosenthol 在 2012 年 IText 峰會上的講解：PDF 及其標準 Category 自由 PDF 軟體 Category 自由排版軟體 Category 用 C程式設計的自由軟體 Category 用 Java 程式設計的自由軟體 CategoryJava 平臺 CategoryJava 函式庫 CategoryC函式庫