itext开始使用itext


备注

如果你看一下PDF创建,你会发现两种不同的方法:

  • 图形设计人员使用桌面应用程序(如Adobe Acrobat或Adobe InDesign)以手动或半手动过程创建文档。
  • 在另一个上下文中,PDF文档是以编程方式创建的,使用API​​直接从软件应用程序生成PDF,而无需最少的人为干预。有时,文档首先以中间格式创建(例如XML,HTML,...),然后转换为PDF。

这些不同的方法需要不同的软件产品

PDF操作也是如此。

  • 您可以在Adobe Acrobat等工具中手动更新PDF,
  • 还有一些工具允许根据数据库中的信息自动填写表单。

iText是一个专注于自动化方面的工具。

什么是iText?

iText是一个开发的SDK,允许开发人员执行以下操作(以及更多):

  • 根据XML文件或数据库中的数据生成文档和报告
  • 创建地图和书籍,利用PDF中提供的众多互动功能
  • 为现有PDF文档添加书签,页码,水印和其他功能
  • 从现有PDF文件中拆分或连接页面
  • 填写交互式表格
  • 数字签署PDF文档
  • 将动态生成或操作的PDF文档提供给Web浏览器

iText不是最终用户工具。您必须将iText构建到您自己的应用程序中,以便您可以自动执行PDF创建和操作过程。

什么时候使用iText?

通常,iText用于具有以下要求之一的项目:

  • 内容无法提前提供:它是根据用户输入或实时数据库信息计算的。
  • 由于大量内容:大量页面或文档,无法手动生成PDF文件。
  • 需要在批处理过程中以无人参与模式创建文档。
  • 内容需要定制或个性化;例如,最终用户的名称必须标记在许多页面上。

通常,您会在Web应用程序中遇到这些要求,其中内容需要动态地提供给浏览器。通常,您将以HTML的形式提供此信息,但对于某些文档,PDF优先于HTML以获得更好的打印质量,出于安全考虑,在各种平台上进行相同的演示,以符合特定的行业标准(例如如PAdES,PDF / A或PDF / UA),或减小文件大小。

版本

首发最新发布的生命尽头
0.30 - 0.99 2000-02-14 2003-05-01 2005-12-31
1.00 - 1.4.8 2003-06-25 2006-12-19 2009-12-31
2.00 - 2.1.7 2003年2月15日 2009-07-07 2012-12-31
5.0.0 - 5.5.11 2009-12-07 二零一七年三月二十〇日 2018年12月31日
7.0.0 - ...... 2016年5月3日 ... 2025年12月31日

你好,世界

这是一个使用iText 7 / Java创建PDF的非常简单的程序:

//Initialize writer
PdfWriter writer = new PdfWriter(dest);

//Initialize document
PdfDocument pdfDoc = new PdfDocument(writer);
Document doc = new Document(pdfDoc);

//Add paragraph to the document
doc.add(new Paragraph("Hello World!"));

//Close document
doc.close();
 

Listing_01_01_HelloWorld.java

您可以导航到该页面中的许多其他示例。


这是一个使用前驱iText 5.5.x / Java创建PDF的非常简单的程序:

// step 1
Document document = new Document();
// step 2
PdfWriter.getInstance(document, new FileOutputStream(filename));
// step 3
document.open();
// step 4
document.add(new Paragraph("Hello World!"));
// step 5
document.close();
 

HelloWorld.java

还有更多示例可以从此页面导航。


这两个例子看起来很相似。重新设计的iText 7 API的优势将变得显而易见,只要人们开始仔细研究不太重要的例子。因此,只需从上面的链接导航示例源代码并进行比较。

安装或设置

iText for Java

从Central Maven Repository导入iText jar是安装iText 7的最佳方式。这些简单的视频解释了如何使用不同的IDE执行此操作:

在这些教程中,我们只将kernellayout 项目定义为依赖项。 Maven还自动导入io jar,因为kernel 包依赖于io 包。

这是标准使用iText 7的基本依赖列表:

<dependencies>
    <dependency>
        <groupId>com.itextpdf</groupId>
        <artifactId>kernel</artifactId>
        <version>7.0.0</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>com.itextpdf</groupId>
        <artifactId>io</artifactId>
        <version>7.0.0</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>com.itextpdf</groupId>
        <artifactId>layout</artifactId>
        <version>7.0.0</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>com.itextpdf</groupId>
        <artifactId>forms</artifactId>
        <version>7.0.0</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>com.itextpdf</groupId>
        <artifactId>pdfa</artifactId>
        <version>7.0.0</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>com.itextpdf</groupId>
        <artifactId>pdftest</artifactId>
        <version>7.0.0</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>1.7.18</version>
    </dependency>
</dependencies>
 

每个依赖项都与Java中的jar和C#中的DLL相对应。

  • kernelio :包含低级功能。
  • layout :包含高级功能。
  • forms :所有AcroForm示例都需要。
  • pdfa :PDF / A特定功能所需。
  • pdftest :也是测试的例子所需要的。

有关iText 7的更具体用途,您可能需要额外的罐子:

  • barcodes :如果要创建barcodes 使用此选项。
  • hyph :如果你想要文字连字符,请使用它。
  • font-asian :使用这是你需要CJK功能(中文/日文/韩文)
  • sign :如果需要数字签名支持,请使用此选项。

上面列出的所有罐子都是根据AGPL许可证提供的。您也可以在Github上托管的ZIP文件中下载这些jar: https//github.com/itext/itext7/releases

如果你想使用这些jar,你必须将它们添加到你的CLASSPATH,就像你添加任何其他jar一样。

附加的iText 7功能可通过附件获得,这些附件在商业许可下作为罐子提供。如果您想使用任何这些附加组件,或者如果您想将iText 7与您的专有代码一起使用,则需要获取iText 7的商业许可证密钥(请参阅iText网站法律部分 )。

您可以使用许可证密钥模块导入此类许可证密钥。您可以像这样获得许可证密钥jar:

<dependency>
    <groupId>com.itextpdf</groupId>
    <artifactId>itext-licensekey</artifactId>
    <version>2.0.0</version>
    <scope>compile</scope>
</dependency>
 

iText中的某些功能是封闭源代码。例如,如果要使用PdfCalligraph ,则需要typography 模块。没有官方许可证密钥,此模块将无法运行。

适用于C#的iText

您可以下载包含AGPL下可用的所有DLL的ZIP文件。有关这些DLL的更多信息,请阅读Java文档。