Suche…


Bemerkungen

Wenn Sie sich die PDF-Erstellung ansehen, finden Sie zwei unterschiedliche Ansätze:

  • Grafische Designer verwenden Desktop-Anwendungen wie Adobe Acrobat oder Adobe InDesign, um ein Dokument in einem manuellen oder halbjährlichen Prozess zu erstellen.
  • In einem anderen Kontext werden PDF-Dokumente programmgesteuert erstellt, wobei eine API verwendet wird, um PDF-Dateien direkt aus Softwareanwendungen zu erstellen, ohne dass ein Eingreifen des Benutzers erforderlich ist. Manchmal wird das Dokument zuerst in einem Zwischenformat erstellt (z. B. XML, HTML, ...) und dann in PDF konvertiert.

Diese unterschiedlichen Ansätze erfordern unterschiedliche Softwareprodukte.

Gleiches gilt für die PDF-Bearbeitung.

  • Sie können ein PDF-Dokument manuell in Tools wie Adobe Acrobat aktualisieren.
  • Es gibt auch Tools, die das automatische Ausfüllen von Formularen basierend auf Informationen aus einer Datenbank ermöglichen.

iText ist ein Werkzeug, das sich auf die Automatisierungsseite der Dinge konzentriert.

Was ist iText?

iText ist ein SDK, das entwickelt wurde, um es den Entwicklern zu ermöglichen (und vieles mehr):

  • Generieren Sie Dokumente und Berichte basierend auf Daten aus einer XML-Datei oder einer Datenbank
  • Erstellen Sie Karten und Bücher mit zahlreichen interaktiven Funktionen, die in PDF verfügbar sind
  • Hinzufügen von Lesezeichen, Seitennummern, Wasserzeichen und anderen Funktionen zu vorhandenen PDF-Dokumenten
  • Teilen oder verketten Sie Seiten aus vorhandenen PDF-Dateien
  • Füllen Sie interaktive Formulare aus
  • PDF-Dokumente digital signieren
  • Bereitstellen von dynamisch erzeugten oder manipulierten PDF-Dokumenten an einen Webbrowser

iText ist kein Endbenutzer-Tool. Sie müssen iText in Ihre eigenen Anwendungen einbauen, damit Sie den PDF-Erstellungs- und Bearbeitungsprozess automatisieren können.

Wann ist iText zu verwenden?

Typischerweise wird iText in Projekten verwendet, die eine der folgenden Anforderungen haben:

  • Der Inhalt ist nicht vorab verfügbar: er wird basierend auf Benutzereingaben oder Echtzeitdatenbankinformationen berechnet.
  • Die PDF-Dateien können aufgrund der großen Menge an Inhalten nicht manuell erstellt werden: eine große Anzahl von Seiten oder Dokumenten.
  • Dokumente müssen im unbeaufsichtigten Modus in einem Stapelprozess erstellt werden.
  • Der Inhalt muss angepasst oder personalisiert werden. Zum Beispiel muss der Name des Endbenutzers auf mehreren Seiten gestempelt werden.

Diese Anforderungen treffen Sie häufig in Webanwendungen, bei denen der Inhalt dynamisch an einen Browser geliefert werden muss. Normalerweise würden Sie diese Informationen in Form von HTML bereitstellen, aber für einige Dokumente wird PDF gegenüber HTML bevorzugt, um eine bessere Druckqualität zu erzielen, die gleiche Darstellung auf einer Vielzahl von Plattformen, aus Sicherheitsgründen, um bestimmte Branchenstandards einzuhalten (z als PAdES, PDF / A oder PDF / UA) oder um die Dateigröße zu verringern.

Versionen

Ausführung Erste Veröffentlichung Neueste Erscheinung Ende des Lebens
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

Installation oder Setup

iText für Java

Das Importieren der iText-Gläser aus dem Central Maven Repository ist die beste Methode, um iText 7 zu installieren. Diese einfachen Videos erläutern, wie dies mit verschiedenen IDEs geschieht:

In diesen Lernprogrammen definieren wir nur den kernel und die layout als Abhängigkeiten. Maven importiert auch automatisch das io jar, da die kernel Pakete von den io Paketen abhängen.

Dies ist die grundlegende Liste der Abhängigkeiten für die Standardnutzung von 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>

Jede Abhängigkeit entspricht einem Jar in Java und einer DLL in C #.

  • kernel und io : enthalten einfache funktionen.
  • layout : enthält übergeordnete Funktionen.
  • forms : für alle AcroForm-Beispiele erforderlich.
  • pdfa : wird für PDF / A-spezifische Funktionen benötigt.
  • pdftest : wird für die Beispiele benötigt, die auch ein Test sind.

Für eine spezifischere Verwendung von iText 7 benötigen Sie möglicherweise zusätzliche Gläser:

  • barcodes : Verwenden Sie diese barcodes , wenn Sie barcodes erstellen möchten.
  • hyph : Verwenden Sie diese hyph , wenn der Text getrennt werden soll.
  • font-asian : Verwenden Sie hierfür die CJK-Funktionalität (Chinesisch / Japanisch / Koreanisch).
  • sign : Verwenden Sie dies, wenn Sie Unterstützung für digitale Signaturen benötigen.

Alle oben aufgeführten Gläser sind unter der AGPL-Lizenz erhältlich. Sie können diese Jars auch in einer ZIP-Datei herunterladen, die auf Github gehostet wird: https://github.com/itext/itext7/releases

Wenn Sie diese Gläser verwenden möchten, müssen Sie sie zu Ihrem CLASSPATH hinzufügen, so wie Sie auch jedes andere Glas hinzufügen würden.

Zusätzliche iText 7-Funktionen sind über Add-Ons verfügbar, die unter einer kommerziellen Lizenz als Dosen geliefert werden. Wenn Sie eines dieser Add-Ons verwenden möchten oder iText 7 mit Ihrem proprietären Code verwenden möchten, benötigen Sie einen kommerziellen Lizenzschlüssel für iText 7 (siehe den rechtlichen Abschnitt der iText-Website ).

Sie können einen solchen Lizenzschlüssel mit dem Lizenzschlüsselmodul importieren. Sie können den Lizenzschlüssel wie folgt erhalten:

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

Einige Funktionen in iText sind Closed Source. Wenn Sie beispielsweise PdfCalligraph verwenden möchten , benötigen Sie das typography . Dieses Modul funktioniert nicht ohne einen offiziellen Lizenzschlüssel.

iText für C #

Sie können eine ZIP-Datei mit allen unter der AGPL verfügbaren DLLs herunterladen. Weitere Informationen zu diesen DLLs finden Sie in der Java-Dokumentation.

Hallo Welt

Dies ist ein sehr einfaches Programm, um ein PDF mit iText 7 / Java zu erstellen:

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

Von dieser Seite aus können Sie zu vielen anderen Beispielen navigieren.


Und dies ist ein sehr einfaches Programm, um ein PDF mit dem Vorläufer iText 5.5.x / Java zu erstellen:

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

Es gibt auch viele weitere Beispiele, um von dieser Seite aus zu navigieren.


Diese beiden Beispiele sehen ziemlich ähnlich aus. Die Vorteile der neu gestalteten iText 7-API werden jedoch offensichtlich, sobald weniger belanglose Beispiele näher betrachtet werden. Navigieren Sie daher einfach durch den Beispielquellcode von den obigen Links und vergleichen Sie.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow