iText

本頁使用了標題或全文手工轉換
維基百科,自由的百科全書

iText®
開發者iText Group NV
當前版本
  • 8.0.3 (2024年2月7日;穩定版本)[1]
編輯維基數據鏈接
源代碼庫 編輯維基數據鏈接
編程語言JavaC#
操作系統跨平台
類型函式庫
許可協議AGPLv3[2]
專有軟件
網站https://itextpdf.com/

iTextJava中用於創建和操作PDF文件的開源。它是由Bruno Lowagie、Paulo Soares等人編寫的。Ohloh英語Ohloh報告稱2001年以來[3],26個不同的貢獻者進行了1萬多次提交,超過100多萬行代碼。[4]iText具有一個由大型開發團隊維護的完善的、成熟的、活躍度同比持平的代碼庫。[5]利用COCOMO模型,花了大約250人年英語工时的努力後,2000年11月iText項目開始了第一次提交。[6]

5.0.0版(2009年12月7日發布)後的iText是在Affero通用公共許可證第3版下分發的。之前版本的iText(Java版的至4.2.1版,和C#版的至4.1.6版)是在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次下載[7],而iTextSharp每周約有4000次下載[8]

特性

開發者可以用iText來:

  • 從XML文件或數據庫來動態生成PDF文檔
  • 為瀏覽器生成PDF文檔
  • 利用PDF的許多互動功能
  • 添加書籤、頁碼、水印、條形碼等
  • 分割、拼接和處理PDF頁面
  • 自動填寫PDF表單
  • 給PDF文件添加數字簽名

通常情況下,在具有下列情況之一的項目中會使用iText:

  • 內容不是提前準備好的:它基於用戶輸入或數據庫的實時信息來計算、處理。
  • 內容太多,PDF文件無法手動生成。
  • 在批處理過程中,文檔需要在無人值守模式下創建。
  • 需要對內容進行定製或個性化。例如,最終用戶的名字需要被印在多個頁面上。

支持的ISO標準

歷史

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的新版本使用。[11]紐約時報還利用iText來創建其公共領域文章的PDF版本。 [12]

iText被嵌入在許多產品和服務中,包括Eclipse BIRTJasper ReportsRed Hat JBoss Seam英語Red Hat JBoss SeamWindward Reports英語Windward Reportspdftk等等。[13]

2008年末,iText的專有許可證可用;2009年初,iText軟件公司成立,成為iText產品的全球許可方。[14]

2013年,德勤提名iText軟件集團為比荷盧聯盟高科技、高成長50強。該公司在比荷盧聯盟中排名第10位,在比利時中排名第3位。[15][16][17][18]

許可證和復刻

iTextSharp 4.1.6/iText 4.2.0之前的版本是在MPLLGPL許可證下分發的,允許用戶在閉源軟件項目中使用。2009年底,iText第5版發布,其許可證被更換為Affero通用公共許可證第3版。 那些不願意提供其源代碼的項目,可以購買iText第5版的商業許可,或沒有任何變化的繼續使用iText的以前版本(其許可證更寬鬆)。[19][20]然而,開發商Bruno Lowagie警告說[來源請求],第5版之前的版本可能包含非LGPL授權的代碼,因而以前版本的閉源項目的用戶可能需要為侵犯版權負責。雖然AGPL庫可以鏈接到GPL的程序,但AGPL許可證與GPL許可證不兼容。

示例

下面的源代碼生成一個PDF文件,作為一個Hello World的例子。

import java.io.FileOutputStream;
import com.itextpdf.text.Document;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.PdfWriter;
 
public class ITextHelloWorld {
    public static void main(String args[]) {
        try {
            Document document = new Document();
            PdfWriter.getInstance(document, new FileOutputStream("HelloWorld.pdf"));
            document.open();
            document.add(new Paragraph("Hello World"));
            document.close();
        } catch (Exception e) {
            System.out.println(e);
        }
    }
}

延展閱讀

參見

參考文獻

  1. ^ Release 8.0.3. 2024年2月7日 [2024年2月20日]. 
  2. ^ The 'LICENSE.txt' file in iText source code repository. Itext.svn.sourceforge.net. [2013-10-26]. [永久失效連結]
  3. ^  . Ohloh commits summary. Ohloh.net. 2013-08-19 [2013-10-26]. (原始內容存檔於2013-10-23). 
  4. ^  . Ohloh languages summary. Ohloh.net. 2013-08-19 [2013-10-26]. (原始內容存檔於2013-10-23). 
  5. ^  . Ohloh iText overview page. Ohloh.net. [2013-10-26]. (原始內容存檔於2013-10-23). 
  6. ^  . Ohloh Estimated development cost. Ohloh.net. 2013-08-19 [2013-10-26]. (原始內容存檔於2013-10-23). 
  7. ^ iText on SourceForge. Sourceforge.net. [2013-10-26]. (原始內容存檔於2013-10-29). 
  8. ^ iTextSharp on SourceForge. Sourceforge.net. [2013-10-26]. (原始內容存檔於2013-10-21). 
  9. ^ PDF Association. How to create PDF/A-3 using iText (PDF). Pdfa.org. 2013-06-06 [2013-10-26]. (原始內容 (PDF)存檔於2013-10-03). 
  10. ^ iText bringing PDF/UA support to Java Implementations頁面存檔備份,存於網際網路檔案館) by Duff Johnson
  11. ^ James Gosling praises iText. Blogs.oracle.com. 2007-09-20 [2013-10-26]. (原始內容存檔於2013-12-15). 
  12. ^ Derek Gottfrid. Self-Service, Prorated Supercomputing Fun!. Code - Open Blog - NYTimes.com. [2014-08-11]. (原始內容存檔於2019-02-16). 
  13. ^ list with references. [2014-07-15]. (原始內容存檔於2014-06-25). 
  14. ^ Feature article in Wereldwijs, a monthly magazine by Flanders Investment and Trade (in Dutch). Epub01.publitas.com. [2013-10-26]. (原始內容存檔於2012-10-10). 
  15. ^ Ranking Deloitte Technology Fast 50 Benelux (PDF). [2014-07-15]. (原始內容 (PDF)存檔於2013-10-14). 
  16. ^ DataNews: 10 Belgians in Deloitte's Technology Fast 50 (Dutch article). [2014-07-15]. (原始內容存檔於2014-07-06). 
  17. ^ digimedia: the 5 Belgian digital start-ups with the fastest growth rate (Dutch article). [2014-07-15]. (原始內容存檔於2014-08-02). 
  18. ^ Deloitte's Fast 50 Newspaper article (PDF). [2014-07-15]. (原始內容存檔 (PDF)於2013-10-19). 
  19. ^ mailing list discussion. [2014-07-15]. (原始內容存檔於2014-10-25). 
  20. ^ Talk about the (A)GPL頁面存檔備份,存於網際網路檔案館) by Ywein Van den Brande, IP lawyer and technologist

外部連結