itext Samouczek
Rozpoczęcie pracy z itext
Szukaj…
Uwagi
Jeśli spojrzysz na tworzenie PDF, znajdziesz dwa różne podejścia:
- Projektanci graficzni używają aplikacji komputerowych, takich jak Adobe Acrobat lub Adobe InDesign, do tworzenia dokumentu w procesie ręcznym lub półrocznym.
- W innym kontekście dokumenty PDF są tworzone programowo, przy użyciu interfejsu API do tworzenia plików PDF bezpośrednio z aplikacji, bez - lub przy minimalnej - interwencji człowieka. Czasami dokument jest najpierw tworzony w formacie pośrednim (np. XML, HTML, ...), a następnie konwertowany na format PDF.
Te różne podejścia wymagają różnych produktów programowych.
To samo dotyczy manipulacji PDF.
- Możesz ręcznie zaktualizować plik PDF za pomocą narzędzi takich jak Adobe Acrobat,
- Istnieją również narzędzia, które umożliwiają automatyczne wypełnianie formularzy na podstawie informacji z bazy danych.
iText to narzędzie, które koncentruje się na automatyzacji rzeczy.
Co to jest iText?
iText to zestaw SDK, który został opracowany w celu umożliwienia programistom wykonywania następujących czynności (i wielu innych):
- Generuj dokumenty i raporty na podstawie danych z pliku XML lub bazy danych
- Twórz mapy i książki, korzystając z wielu interaktywnych funkcji dostępnych w formacie PDF
- Dodaj zakładki, numery stron, znaki wodne i inne funkcje do istniejących dokumentów PDF
- Podziel lub połącz strony z istniejących plików PDF
- Wypełnij interaktywne formularze
- Podpisuj cyfrowo dokumenty PDF
- Podawaj dynamicznie generowane lub zmanipulowane dokumenty PDF do przeglądarki internetowej
iText nie jest narzędziem użytkownika końcowego. Musisz wbudować iText we własne aplikacje, aby zautomatyzować proces tworzenia i manipulowania plikami PDF.
Kiedy używać iText?
Zazwyczaj iText jest używany w projektach, które mają jeden z następujących wymagań:
- Treść nie jest dostępna z góry: jest obliczana na podstawie danych wprowadzonych przez użytkownika lub danych bazy danych w czasie rzeczywistym.
- Pliki PDF nie mogą być tworzone ręcznie z powodu ogromnej ilości treści: dużej liczby stron lub dokumentów.
- Dokumenty należy tworzyć w trybie nienadzorowanym, w procesie wsadowym.
- Treść musi być dostosowana lub spersonalizowana; na przykład nazwa użytkownika końcowego musi być wybita na kilku stronach.
Często te wymagania są spotykane w aplikacjach internetowych, w których treść musi być dynamicznie udostępniana przeglądarce. Zwykle podajesz te informacje w postaci HTML, ale w przypadku niektórych dokumentów PDF jest lepszy niż HTML w celu uzyskania lepszej jakości drukowania, dla identycznej prezentacji na różnych platformach, ze względów bezpieczeństwa, w celu spełnienia określonych standardów branżowych (takich jak jako PAdES, PDF / A lub PDF / UA) lub w celu zmniejszenia rozmiaru pliku.
Wersje
Wersja | Pierwsze wydanie | Najnowsze wydanie | Koniec życia |
---|---|---|---|
0,30 - 0,99 | 2000-02-14 | 2003-05-01 | 2005-12-31 |
1,00 - 1,4,8 | 2003-06-25 | 2006-12-19 | 31.12.2009 |
2,00 - 2,1 | 2003-02-15 | 07.07.2009 | 31.12.2012 |
5.0.0 - 5.5.11 | 07.12.2009 | 2017-03-20 | 31.12.2018 |
7.0.0 - ... | 2016-05-03 | ... | 2025–12–31 |
Instalacja lub konfiguracja
iText dla Java
Importowanie słoików iText z centralnego repozytorium Maven jest najlepszym sposobem na zainstalowanie iText 7. Te proste filmy wyjaśniają, jak to zrobić przy użyciu różnych IDE:
- Jak zaimportować iText 7 do Eclipse, aby utworzyć plik PDF Hello World?
- Jak zaimportować iText 7 do Netbeans, aby utworzyć plik PDF Hello World?
- Jak zaimportować iText 7 do IntelliJ IDEA, aby utworzyć plik PDF Hello World?
W tych samouczkach definiujemy tylko kernel
i projekty layout
jako zależności. Maven automatycznie importuje również słoik io
ponieważ pakiety kernel
zależą od pakietów io
.
Oto podstawowa lista zależności dla standardowego użytkowania 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>
Każda zależność odpowiada jarowi w Javie i DLL w języku C #.
-
kernel
iio
: zawierają funkcjonalność niskiego poziomu. -
layout
: zawiera funkcje wysokiego poziomu. -
forms
: potrzebne dla wszystkich przykładów AcroForm. -
pdfa
: potrzebne do funkcjonalności specyficznej dla PDF / A. -
pdftest
: potrzebny do przykładów, które są również testem.
Do bardziej szczegółowego wykorzystania iText 7 mogą być potrzebne dodatkowe słoiki:
-
barcodes
: użyj tego, jeśli chcesz tworzyć kody kreskowe. -
hyph
: użyj tego, jeśli chcesz, aby tekst był dzielony. -
font-asian
: użyj tego, potrzebujesz funkcji CJK (chiński / japoński / koreański) -
sign
: użyj tego, jeśli potrzebujesz wsparcia dla podpisów cyfrowych.
Wszystkie wymienione powyżej słoiki są dostępne na licencji AGPL. Możesz również pobrać te słoiki w pliku ZIP hostowanym na Github: https://github.com/itext/itext7/releases
Jeśli chcesz użyć tych słoików, musisz dodać je do swojej CLASSPATH, tak jak do każdego innego słoika.
Dodatkowa funkcjonalność iText 7 jest dostępna za pośrednictwem dodatków, które są dostarczane jako słoiki na podstawie licencji komercyjnej. Jeśli chcesz korzystać z któregokolwiek z tych dodatków lub chcesz używać iText 7 z własnym kodem, musisz uzyskać komercyjny klucz licencyjny do iText 7 (patrz dział prawny na stronie iText ).
Możesz zaimportować taki klucz licencyjny za pomocą modułu klucza licencyjnego. Możesz pobrać słoik z kluczem licencyjnym w następujący sposób:
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext-licensekey</artifactId>
<version>2.0.0</version>
<scope>compile</scope>
</dependency>
Niektóre funkcje w iText są zamkniętym źródłem. Na przykład, jeśli chcesz użyć PdfCalligraph , potrzebujesz modułu typography
. Ten moduł nie będzie działać bez oficjalnego klucza licencyjnego.
iText dla C #
Możesz pobrać plik ZIP zawierający wszystkie biblioteki DLL dostępne na AGPL. Aby uzyskać więcej informacji o tych bibliotekach DLL, przeczytaj dokumentację Java.
Witaj świecie
Jest to bardzo prosty program do tworzenia plików PDF za pomocą 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 )
Możesz przejść do wielu innych przykładów z tej strony.
Jest to bardzo prosty program do tworzenia plików PDF za pomocą prekursora 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 )
Istnieje również wiele innych przykładów nawigacji z tej strony.
Te dwa przykłady wyglądają bardzo podobnie. Zalety przeprojektowanego interfejsu API iText 7 staną się jednak widoczne, gdy tylko zaczniemy przyglądać się mniej trywialnym przykładom. Dlatego po prostu nawiguj po przykładowym kodzie źródłowym z powyższych linków i porównaj.