itext учебник
Начало работы с itext
Поиск…
замечания
Если вы посмотрите на создание 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:
- Как импортировать iText 7 в Eclipse для создания Hello World PDF?
- Как импортировать iText 7 в Netbeans для создания Hello World PDF?
- Как импортировать iText 7 в IntelliJ IDEA для создания Hello World PDF?
В этих руководствах мы определяем только 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 станут очевидными, однако, как только вы начнете смотреть на менее простые примеры. Таким образом, просто перейдите по исходному коду примера из приведенных выше ссылок и сравните.