iText
iText是Java中用於建立和操作PDF檔案的開源庫。它是由Bruno Lowagie、Paulo Soares等人編寫的。Ohloh報告稱2001年以來[2],26個不同的貢獻者進行了1萬多次提交,超過100多萬行代碼。[3]iText具有一個由大型開發團隊維護的完善的、成熟的、活躍度同比持平的代碼庫。[4]利用COCOMO模型,花了大約250人年的努力後,2000年11月iText專案開始了第一次提交。[5]
開發者 | iText Group NV |
---|---|
目前版本 | 7.1.14(2021年1月14日 | )
原始碼庫 | |
程式語言 | Java、C# |
作業系統 | 跨平台 |
類型 | 函式庫 |
授權條款 | AGPLv3[1] 專有軟體 |
網站 | https://itextpdf.com/ |
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次下載[6],而iTextSharp每周約有4000次下載[7]。
特性
編輯開發者可以用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的新版本使用。[10]紐約時報還利用iText來建立其公共領域文章的PDF版本。 [11]
iText被嵌入在許多產品和服務中,包括Eclipse BIRT、Jasper Reports、Red Hat JBoss Seam、Windward Reports、pdftk等等。[12]
2008年末,iText的專有授權條款可用;2009年初,iText軟體公司成立,成為iText產品的全球授權方。[13]
2013年,德勤提名iText軟體集團為比荷盧聯盟高科技、高成長50強。該公司在比荷盧聯盟中排名第10位,在比利時中排名第3位。[14][15][16][17]
授權條款和復刻
編輯iTextSharp 4.1.6/iText 4.2.0之前的版本是在MPL和LGPL授權條款下分發的,允許使用者在閉源軟體專案中使用。2009年底,iText第5版釋出,其授權條款被更換為Affero通用公眾授權條款第3版。 那些不願意提供其原始碼的專案,可以購買iText第5版的商業授權,或沒有任何變化的繼續使用iText的以前版本(其授權條款更寬鬆)。[18][19]然而,開發商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);
}
}
}
延展閱讀
編輯- Lowagie, Bruno. iText in Action 2nd. Manning Publications. Summer 2010: 600. ISBN 978-1-935182-61-0.
- Review first edition on JFree.org(頁面存檔備份,存於網際網路檔案館) by David Gilbert
- Review first edition on JavaLobby by Stephen Kitt
- Lowagie, Bruno. iText in Action 1st. Manning Publications. 8 December 2006: 656. ISBN 1-932394-79-6.
- 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(頁面存檔備份,存於網際網路檔案館)
- Snyder, Thomas. Advanced Integrated RPG. MC Press. 19 January 2010: 400. ISBN 978-1583470954. 外部連結存在於
|title=
(幫助) (Chapters 10, 11 and 12(頁面存檔備份,存於網際網路檔案館) are dedicated entirely to iText) - Johnson, Rod. Expert One-on-One J2EE Design and Development. Wrox. 23 October 2002: 768. ISBN 978-0764543852. 外部連結存在於
|title=
(幫助) (see section "Generating PDF with iText" starting on p705) - Danciu, Teodor. [http://books.google.be/books?id=LWTbssKt6MUC&printsec=frontcover&dq=iText&hl=en&sa=X&ei=IdtcUuLjBeGl0QXvgoDYCw&redir_esc=y#v=onepage&q=iText&f=false The Definitive Guide to JasperReports]. APress. 27 August 2007: 223. ISBN 978-1590599273. 外部連結存在於
|title=
(幫助) - Whitington, John. PDF Explained. O'Reilly. 10 December 2011: 142. ISBN 978-1449310028. 外部連結存在於
|title=
(幫助) - Steward, Sid. [http://books.google.be/books?id=ozWeSBkPQW4C&printsec=frontcover&dq=iText&hl=en&sa=X&ei=E9tcUsPeM4m70QWQtICQDg&redir_esc=y#v=onepage&q=iText&f=false PDF Hacks]. O'Reilly. 23 August 2004: 298. ISBN 978-0596006556. 外部連結存在於
|title=
(幫助) (translated into Italian: Acrobat e PDF. Trucchi e segreti(頁面存檔備份,存於網際網路檔案館))
參見
編輯參考文獻
編輯- ^ The 'LICENSE.txt' file in iText source code repository. Itext.svn.sourceforge.net. [2013-10-26].[永久失效連結]
- ^ . Ohloh commits summary. Ohloh.net. 2013-08-19 [2013-10-26]. (原始內容存檔於2013-10-23).
- ^ . Ohloh languages summary. Ohloh.net. 2013-08-19 [2013-10-26]. (原始內容存檔於2013-10-23).
- ^ . Ohloh iText overview page. Ohloh.net. [2013-10-26]. (原始內容存檔於2013-10-23).
- ^ . Ohloh Estimated development cost. Ohloh.net. 2013-08-19 [2013-10-26]. (原始內容存檔於2013-10-23).
- ^ iText on SourceForge. Sourceforge.net. [2013-10-26]. (原始內容存檔於2013-10-29).
- ^ iTextSharp on SourceForge. Sourceforge.net. [2013-10-26]. (原始內容存檔於2013-10-21).
- ^ PDF Association. How to create PDF/A-3 using iText (PDF). Pdfa.org. 2013-06-06 [2013-10-26]. (原始內容 (PDF)存檔於2013-10-03).
- ^ iText bringing PDF/UA support to Java Implementations (頁面存檔備份,存於網際網路檔案館) by Duff Johnson
- ^ James Gosling praises iText. Blogs.oracle.com. 2007-09-20 [2013-10-26]. (原始內容存檔於2013-12-15).
- ^ Derek Gottfrid. Self-Service, Prorated Supercomputing Fun!. Code - Open Blog - NYTimes.com. [2014-08-11]. (原始內容存檔於2019-02-16).
- ^ list with references. [2014-07-15]. (原始內容存檔於2014-06-25).
- ^ Feature article in Wereldwijs, a monthly magazine by Flanders Investment and Trade (in Dutch). Epub01.publitas.com. [2013-10-26]. (原始內容存檔於2012-10-10).
- ^ Ranking Deloitte Technology Fast 50 Benelux (PDF). [2014-07-15]. (原始內容 (PDF)存檔於2013-10-14).
- ^ DataNews: 10 Belgians in Deloitte's Technology Fast 50 (Dutch article). [2014-07-15]. (原始內容存檔於2014-07-06).
- ^ digimedia: the 5 Belgian digital start-ups with the fastest growth rate (Dutch article). [2014-07-15]. (原始內容存檔於2014-08-02).
- ^ Deloitte's Fast 50 Newspaper article (PDF). [2014-07-15]. (原始內容存檔 (PDF)於2013-10-19).
- ^ mailing list discussion. [2014-07-15]. (原始內容存檔於2014-10-25).
- ^ Talk about the (A)GPL (頁面存檔備份,存於網際網路檔案館) by Ywein Van den Brande, IP lawyer and technologist
外部連結
編輯- iText首頁(頁面存檔備份,存於網際網路檔案館)
- SourceForge上的iText(頁面存檔備份,存於網際網路檔案館)
- SourceForge上的iTextSharp(頁面存檔備份,存於網際網路檔案館)
- StackOverflow上的iText(頁面存檔備份,存於網際網路檔案館)
- StackOverflow上的iTextSharp(頁面存檔備份,存於網際網路檔案館)
- 用來諮詢與IText有關問題的支援論壇[1]
- 用IText建立PDF檔案的第三方指南[2](頁面存檔備份,存於網際網路檔案館)
- 用IText合併PDF檔案的第三方指南[3](頁面存檔備份,存於網際網路檔案館)
- 2012年IText峰會上講解Android、PDF、HTML5的影片片段[4](頁面存檔備份,存於網際網路檔案館)
- Adobe的PDF架構師Leonard Rosenthol在2012年IText峰會上的講解:PDF及其標準(頁面存檔備份,存於網際網路檔案館)