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:

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 i io : 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.



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow