Поиск…


замечания

Если вы посмотрите на создание PDF, вы найдете два разных подхода:

  • Графические дизайнеры используют настольные приложения, такие как Adobe Acrobat или Adobe InDesign, для создания документа в ручном или полумануальном процессе.
  • В другом контексте документы PDF создаются программно, используя API для создания PDF-файлов непосредственно из программных приложений без вмешательства или с минимальным вмешательством человека. Иногда документ сначала создается в промежуточном формате (например, XML, HTML, ...), а затем преобразуется в PDF.

Эти разные подходы требуют различных программных продуктов.

То же самое касается обработки PDF.

  • Вы можете обновить PDF вручную в таких инструментах, как Adobe Acrobat,
  • Существуют также инструменты, позволяющие заполнять формы автоматически на основе информации из базы данных.

iText - это инструмент, который фокусируется на аспектах автоматизации.

Что такое iText?

iText - это SDK, который был разработан, чтобы позволить разработчикам делать следующее (и многое другое):

  • Создавать документы и отчеты на основе данных из XML-файла или базы данных
  • Создавайте карты и книги, используя множество интерактивных функций, доступных в PDF
  • Добавить закладки, номера страниц, водяные знаки и другие функции в существующие документы PDF
  • Разделить или объединить страницы из существующих файлов PDF
  • Заполните интерактивные формы
  • Цифровая подпись документов PDF
  • Служить динамически созданным или управляемым PDF-документам в веб-браузере

iText не является инструментом конечного пользователя. Вы должны создать iText в своих собственных приложениях, чтобы вы могли автоматизировать процесс создания и обработки PDF.

Когда использовать iText?

Как правило, iText используется в проектах, которые имеют одно из следующих требований:

  • Содержимое недоступно заранее: оно рассчитывается на основе пользовательского ввода или информации в режиме реального времени.
  • Файлы PDF не могут создаваться вручную из-за большого объема контента: большого количества страниц или документов.
  • Документы необходимо создавать в автоматическом режиме в пакетном режиме.
  • Содержимое необходимо настроить или персонализировать; например, имя конечного пользователя должно быть напечатано на нескольких страницах.

Часто вы будете сталкиваться с этими требованиями в веб-приложениях, где контент должен динамически отображаться в браузере. Как правило, вы будете обслуживать эту информацию в форме 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-02-15 2009-07-07 2012-12-31
5.0.0 - 5.5.11 2009-12-07 2017-03-20 2018-12-31
7.0.0 - ... 2016-05-03 ... 2025-12-31

Установка или настройка

iText для Java

Импорт баннеров iText из Центрального репозитория Maven - лучший способ установить iText 7. Эти простые видеоролики объясняют, как это сделать с помощью разных IDE:

В этих руководствах мы определяем только kernel и проекты layout как зависимости. 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 и DLL на C #.

  • kernel и io : содержат низкоуровневую функциональность.
  • layout : содержит функции высокого уровня.
  • forms : необходимо для всех примеров AcroForm.
  • pdfa : требуется для функций PDF / A.
  • pdftest : необходим для примеров, которые также являются тестом.

Для более конкретного использования iText 7 вам могут понадобиться дополнительные банки:

  • barcodes : используйте это, если вы хотите создать штрих-коды.
  • hyph : используйте это, если вы хотите, чтобы текст был переносимым.
  • font-asian : используйте эту функцию CJK (китайский / японский / корейский)
  • sign : используйте это, если вам нужна поддержка цифровых подписей.

Все перечисленные выше банки доступны по лицензии AGPL. Вы также можете скачать эти банки в ZIP-файле, размещенном на Github: https://github.com/itext/itext7/releases

Если вы хотите использовать эти банки, вы должны добавить их в свой CLASSPATH, как если бы вы добавили любую другую банку.

Дополнительные функции iText 7 доступны через надстройки, которые поставляются в виде баннеров по коммерческой лицензии. Если вы хотите использовать какие-либо из этих надстроек или хотите использовать iText 7 с вашим проприетарным кодом, вам необходимо получить коммерческий лицензионный ключ для iText 7 (см. Юридический раздел веб-сайта iText ).

Вы можете импортировать такой лицензионный ключ с помощью модуля лицензионного ключа. Вы можете получить банку с лицензионным ключом следующим образом:

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

Некоторые функции в iText закрыты. Например, если вы хотите использовать PdfCalligraph , вам нужен модуль typography . Этот модуль не будет работать без официального лицензионного ключа.

iText для C #

Вы можете загрузить ZIP-файл, содержащий все библиотеки DLL, доступные в AGPL. Подробнее об этих DLL-файлах читайте в документации по Java.

Привет, мир

Это очень простая программа для создания PDF-файла с помощью iText 7 / Java:

//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 )

Вы можете перейти к многим другим примерам с этой страницы.


И это очень простая программа для создания PDF-файла с использованием прекурсора iText 5.5.x / Java:

// 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 станут очевидными, однако, как только вы начнете смотреть на менее простые примеры. Таким образом, просто перейдите по исходному коду примера из приведенных выше ссылок и сравните.



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow